2016-09-29 31 views
4

私はsourceコマンドでスクリプトを呼び出しており、スクリプトに引数を渡したいとします。私はman sourceチェックしてsourceコマンドで呼び出されるスクリプトに引数を渡すにはどうすればよいですか?

、bashのリターン:

:[引数]
影響なし。引数を拡張して指定されたリダイレクトを実行する以外に何もしません。ゼロ終了コードが返されます。

ソースファイル名[arguments]
現在のシェル環境でfilenameからコマンドを読み取り、実行し、filenameから最後に実行されたコマンドの終了ステータスを返します。 filenameにスラッシュが含まれていない場合は、PATHのファイル名を使用してfilenameを含むディレクトリを検索します。 PATHで検索されたファイルは実行可能である必要はありません。 bashがposixモードにないときは、PATHにファイルが見つからなければカレントディレクトリが検索されます。 shopt組み込みコマンドのsourcepathオプションがオフになっている場合、PATHは検索されません。引数が指定されていれば、filenameが実行されたときの位置パラメータになります。さもなければ、位置パラメータは変更されない。戻り状況は、スクリプト内で最後に終了したコマンドのステータスです(コマンドが実行されていない場合は0)。filenameが見つからないか、読み取れない場合はfalseです。

これは例がないため、わかりません。

答えて

5

以下の内容のファイルtest.sh作成:

echo "I was given $# argument(s):" 
printf "%s\n" "[email protected]" 

をして、対話型シェルセッションから、それをソース:

$ source ./test.sh a 'b c' 
I was given 2 argument(s): 
a 
b c 

ので、あなたがあなたのような引数は、正規に行うだろうにアクセスbashスクリプト、[email protected]または$1$2$3など

比較のため、通常のスクリプトとして実行してください:

$ bash ./test.sh a 'b c' 
I was given 2 argument(s): 
a 
b c 
関連する問題