bashはzshと同じように{1..$VAR}を拡張します。

bashはzshと同じように{1..$VAR}を拡張します。

私のコメントに答えてくださいこの問題SFに関して、OPは主張する。

for i in {1..$NUM}

Bashで正しく拡張してください。 bash 4.0.33(Ubuntu)、3.2.25(Centos)、および3.00.16(1)(solaris 10)にアクセスできます。これらのどれも{1..$NUM}を拡張しません。

どのbashバージョンに拡張機能があるかを知っている人はいますか?強打でなければ何ですか? zshが拡張を実行していることはわかっていますが、OPスクリプトでshebangはエイリアシングの可能性を排除する必要がありますか?

ベストアンサー1

サーバー障害について質問した人が間違っていると確信しています。彼らは意図的にいくつかの詳細を省略したか、システムの奇妙な構成を認識しませんでした(/bin/bashは他のものへのリンクとして機能します)。私は2週間前のbash 4.2バージョン、CentOS 5のbash 3.2、そして最近bash 2.05a(2001年から)ビルドを試しました。

最も古いソースftp.gnu.org1.14ですが、きちんと構築されていないので、試してみる価値があるかどうかわかりません。このバージョンのドキュメントには、最新のドキュメントとまったく同じコアフレーズが含まれています。

 The order of expansions is: brace  expansion,  tilde  expan-
 sion, parameter, variable, command, and arithmetic substitu-
 tion (done in a left-to-right fashion), word splitting,  and
 pathname expansion.

しかし、実際に今考えてみると、「{x..y}」構文は次のようなので意味がありません。バッシュ3.0に追加、以前の検索を無駄にします。

それでは3.0を試してみましょう...そうです。同じ行動。

まあ、うん。私はそれを非常に疑います。何か合算されませんでした。


(後に…)

ああ!サーバー障害の質問者認める申し訳ありません。私のせい。 {1..10}のiに実際の数字を入れたので、うまくいきます。「じゃあ、それだ。

正解はこれ問題は「このように動作するbashバージョンがありません」です。 :)

おすすめ記事