0

循环中的这一行应该将三个字符串加在一起

for each $drivecount
${drives[$drivecount]}=${info[$count+1]}" "${info[$count+2]}" "${info[$count+3]}

这是我得到的错误:

./erasehd.sh: line 17: =/dev/sda: 80.0 GB: No such file or directory

看起来它包含 = 作为第一个字符串的一部分?

4

1 回答 1

2
./erasehd.sh: line 17: =/dev/sda: 80.0 GB: No such file or directory

不,它忽略了前面未声明的变量并尝试=/dev/sda...作为命令执行。;-) .... 你要

for each $drivecount
drives[$drivecount]=${info[$count+1]}" "${info[$count+2]}" "${info[$count+3]}

设置变量时,您永远不需要在变量上使用前导“$”,或者换一种说法,通常您不希望在“=”赋值的左侧使用“$”。

我不熟悉for eachbash 中的构造。你确定这是对的吗?我希望像

for drivecount in 1 2 3 ; do
 ....

最后,您包含的语法用于引用与赋值无关的数组元素。

for dc in 1 2 3 ; do
  echo ${drives[$dc]}
done

IHTH。

于 2012-12-28T02:52:26.763 回答