2017-11-09 8 views
1
shopt -s nullglob 
array=(~/unsorted_files/*.jpg) 

for ((i=0; i<${#arr[@]}; i++)); do 

echo "${array[$i]}" 

done 

ディレクトリからjpgファイルを解析して印刷するために使用しようとしているコードが同梱されています。シェルチェックを使用してコードを実行すると、配列は参照されていますが割り当てられていません。配列がbashで入力/割り当てされていない

これは私が混乱しています。私の理解は=が代入演算子であることです。そういう場合、私は(間違って)、jpgファイルタイプのすべてのファイルを配列に割り当てると仮定しました。

+0

あなたが表示するコードは 'array'にのみ割り当てられ、' arr'には割り当てられません。おそらく '$ {#arr [@]}'はタイプミスで、シェルチェックがあなたのためにそれをキャッチしていますか? –

答えて

2

forループカウンタのチェックに誤字があります。 arrayが入力されましたが、ループ内でarrがチェックされています。そのため偽の式の評価の

for ((i=0; i<${#array[@]}; i++)); do 

以下のようにそれを修正し、ループの本体は配列があなたのJPEGファイルによって移入そうであるにもかかわらず、入力されることはありません。