Openshiftに接続し、PODから一連のコマンドを実行するスクリプトがあります。複数のPaaSを使用しているため、異なる接続コマンドを使用して各PaaSでスクリプトを起動する必要があります。
これを順番に実行すると、すべてがうまく機能しますが、時間がかかるため、すべてのコマンドを並列に開始することをお勧めします。
同じ環境で並列に起動すると、接続は互いに上書きされます。
この記事を見つけました。Bashのクリーンな環境でプログラムを実行するには?ここでは有望に見えますが、起動したいスクリプトに引数を送信することはできません。
私のコードは次のようになります。
#Get argument values
...
env -i ~/Path/To/script.sh -a1 value -a2 ${variable1} -a3 ${variable2} -- --noprofile -norc &
env -i ~/Path/To/script.sh -a1 value -a2 ${variable1} -a3 ${variable2} -- --noprofile -norc &
env -i ~/Path/To/script.sh -a1 value -a2 ${variable1} -a3 ${variable2} -- --noprofile -norc &
env -i ~/Path/To/script.sh -a1 value -a2 ${variable1} -a3 ${variable2} -- --noprofile -norc &
...
#Process resulting output
この場合、script.shは変数に送信されたパラメータ値を受け取らないようです。
機密情報なので、スクリプトに書き込めないことを知って変数引数を取得する方法についてのアイデアはありますか?
みんなありがとう、
ありがとう、ジン
答え1
--norc
2つのオプションは通訳者オプション--noprofile
です。bash
つまり、これらのオプションを渡すには、インタプリタを明示的に呼び出す必要があります。
env -i bash --norc --noprofile ~/Path/To/script.sh -a1 value -a2 "$variable1" -a3 "$variable2"
ここでは、コマンドから引用符を持たない変数の周りに引用符を追加し、不要な中括弧を削除することもできます。