
Bashリファレンスマニュアルを読むときシェル操作、それは言う:
- これらの入力は、ファイル(シェルスクリプトを参照)、-c呼び出しオプション(Bash呼び出しを参照)の引数として提供される文字列、またはユーザー端末から読み取られます。
私の質問は次のとおりです。
- 入力を読む3つの方法の違いは何ですか?
- スクリプトにパラメータがある可能性がありますか?良い
$ ./script arg1 arg2 ...
いくつかのコマンドを入力すると、端末は次のようになります。
$ command1 arg1 arg2 ...
command1
Bashは、それがスクリプト(スクリプトの内容を読む)ではなく実行可能ファイル(追加処理なしで実行のみ)であるかどうかをどうやって知ることができますか?
答え1
主な違いは、端末から読み取るとシェルがプロンプトを表示することです。そうでなければ違いはありません
$ echo ls > script $ bash script script $ bash -c ls script $ ls script
シェルは対話式に実行されているかどうかを知っており、これによって一部のコマンドが異なる動作をする可能性があります。
はい、これは非常に一般的なことです。文字列の引数は位置引数を埋めます。
$@
ら$1
。で検索してください。$2
man bash
のパラメータ、関数、およびエイリアスを参照してください
man bash
。簡単に言えば、を実行すると、command1 arg1 arg2
bashは最初にエイリアスを拡張し、結果を実行するか、関数を実行しようとcommand1
しcommand1
ます$PATH
。