一連のディレクトリを調べてファイルの存在を確認し、見つかった場合は、を介してディレクトリスタックにプッシュするスクリプトを作成していますpushd
。dirs
コマンドはめちゃくちゃ不快で、その内容のbash変数形式に出くわしました。$DIRSTACK
$DIRSTACK
スタック内のディレクトリの配列です。常に1つのエントリ、現在の作業ディレクトリ、およびプッシュされたディレクトリが続くことが保証されています。
ディレクトリのリストを反復処理しようとしていますが、自動的に生成しようとしているシーケンスの長さをforループで受け入れられないようです。
for i in {1..${#DIRSTACK[*]}}; do
echo ${DIRSTACK[$i]}
done
実行すると、bashは次のエラーで失敗します。
line 72: {1..2}: syntax error: operand expected (error token is "{1..2}")
正直なところ、for i in {1..5}
問題なくスクリプトを何度も手動で記述していて、エラーメッセージが表示されたため、配列アイテムの数の拡張が希望どおりに機能しているようです。
このエラーが発生するのはなぜですか?