次の簡単なスクリプトがあります。
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
私が実行した場合の出力sh file.sh
:
Bash version ...
{1..99..2}
私が実行した場合の出力bash file.sh
:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
2つのクエリがあります。
私はシェルを指定shabang行を記述した場合、それは私が使用しているかどうかはbashで実行するべきではありません
sh file.sh
かbash file.sh
?それ
$BASH_VERSION
はshによって認識されないことを理解していますが、forループの問題は何ですか?なぜ数字が印刷されないのですか?
dash
はsh
、Ubuntuで提供されているように、主に「DIRE状況の緊急プロンプトになること」ではなく、システムを高速に実行および開始できるようにするためのものではありません。。このように、dash
モダンなOSでの使用に適しているが、何それは非常に適していますのためには、ロープロファイル、スクリプト用の高速シェルとしてある-大きな、複雑な、近代的なOSの起動中、特に、最小限で、システムのスクリプトを実行していますパフォーマンスのオーバーヘッド。