0

ループからのこの行は、3 つの文字列を一緒に追加することになっています

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 に答える