私はこのようなbashで配列のインデックスで算術展開、使用:Bash:配列インデックスの算術展開 - ドル記号が必要ですか?
declare -a FILES
declare -i INDEX=0
for FILE in ./*
do
FILES[((INDEX++))]="$FILE"
done
を私は((...))の前にドル記号が必要ですか?
FILES[((INDEX++))]="$FILE"
いうか::
FILES[$((INDEX++))]="$FILE"
は、だから、する必要もありませんか?
私のローカルコピーのbashでは両方の亜種が動作するようです - バージョン4.3.30です。
私は、算術式の結果を返すとしか思えないので、後者の方がうまくいくと思います。しかし、そこに:Bash - arithmetic in array index私は最初のバージョンのbash(?)で動作するかもしれないことを読んだ。実際にはどちらが正しいですか?そして、なぜ最初のものが動作していますか?まだ具体的な答えは見つかっていない。
、問題はbash' 'のバージョンとは関係ありませんでした。ユーザーは彼のスクリプトにバグを持っていました(バージョンの問題については、バグがあったときにxが空であることがわかりました)。 – Aserre
@Aserre:もちろんあなたは正しいですが、受け入れられた答えに対する彼のコメントに記載されているように、ユーザは構文エラーを受け取るでしょうが、私は彼が彼のコメントに 'let 'キーワードを使用していることを認識しませんでした。 – erbth