非常に単純なファイルtest.sh
があります。複数のコマンドを引数としてbashスクリプトに渡します。
#!/usr/bin/env bash
$1
私は./test.sh "pwd; mkdir a;"
を実行すると、それは私が使用しようとした
./test.sh: line 3: pwd;: command not found
'を返す&'/'& &'/';' が、すべては動作しません。 arugmentで複数のコマンドを実行するにはどうすればよいですか?
非常に単純なファイルtest.sh
があります。複数のコマンドを引数としてbashスクリプトに渡します。
#!/usr/bin/env bash
$1
私は./test.sh "pwd; mkdir a;"
を実行すると、それは私が使用しようとした
./test.sh: line 3: pwd;: command not found
'を返す&'/'& &'/';' が、すべては動作しません。 arugmentで複数のコマンドを実行するにはどうすればよいですか?
bash
は、文字列($1
)をあたかもスクリプトまたは入力コマンドであるかのように解釈しようとしています。それを行うには2つの方法があります。
eval
組み込み用途:eval $1
の代わり$1
が。bash
を別々に実行して、コマンドを評価してください:の代わりにbash -c "$1"
引用符を気にしてください。
これを試す複数のコマンドを実行する論理演算子(||)については、https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at- once-in-linux/this – Abi
./test.sh; pwd; mkdir a – Hussain
スクリプトの引数として一連のコマンドを渡す必要がある理由を説明できますか?あなたの質問に対する答えがあなたにとって有益であるかもしれないが、あなたには何か他のものがあるかもしれない。コードにスクリプトに渡されるデータを使用するので、最初にスクリプトにコマンドを渡すのを避ける方法を学ぶことが多い。セキュリティからの最適/驚きやバグの回避を避けます。 – Fred