【发布时间】:2021-04-07 15:53:48
【问题描述】:
我有这段代码,虽然它运行良好,但我在virusarray[i]=${line ::-1} 行有一个错误
testFile.sh:第 57 行:${line ::-1}:错误替换
这种错误。谁知道?
declare -a virusarray
i=0
while read line; do
#Reading each line by omitting backslash escape
virusarray[i]=${line ::-1}
# echo $line
((i=i+1))
done < $virusfile
【问题讨论】:
-
为什么是
c标签? -
试试
${line::-1},我不认为 bash 喜欢那个空间 -
具体来说,在您的 PE 内的数字和运算符之间存在歧义的字段中使用 数字之前 的空格是正确的(并且两者都是有效的);但这不是其中一种情况,而且空间完全是错误的。
-
顺便说一句,这是将行分配给数组的一种非常低效的方法。考虑
mapfile -t virusarray <"$virusfile"; virusarray=( "${virusarray[@]%?}" )?即使virusarray+=( "${line%?}" )会更好。
标签: bash substitution script