
値が割り当てられている本番環境でスクリプトを実行していますが、こことは異なる値を使用したいと思います。
myscript.sh
a=20181214
....
export a=20181212
私はこのスクリプトを使用したいので、このスクリプトを呼び出してからこのスクリプトを呼び出します20181212
。ただし、値を選択するたびに20181214
。
答え1
スクリプトを編集できる場合は、表示されるように修正してください。
a=${a:-20181214}
これにより、以前に設定された値が使用されますa
。または空の場合、または変数が設定されていない20181214
場合。$a
これは標準パラメータ拡張。
その後利用できます
export a=20181212
./script.sh
または
a=20181212 ./script.sh
後者は呼び出し環境で変数を設定せず、スクリプト環境に対してのみ設定します。
もしあなたならできないa
何をしても、スクリプトが常に値を上書きするようにスクリプトを変更してください。この場合、スクリプトを管理している人に連絡して状況を説明してください。最悪の場合は、使用しているスクリプトのコピーを使用してください。できるスクリプトが特定の場所にあることを望まないと仮定して編集します。
答え2
スクリプトは別のシェルで実行されます。このコマンドは、export A
現在のシェルの変数のみを設定します。スクリプトの上部から変数をエクスポートでき、残りの環境には影響しません。例えば
~$ export A=a
~$ echo $A
a
同じシェルからtest.shスクリプトを生成する場合
#!/bin/bash
export A=b
echo $A
出力は「b」ですが、シェルのA値は変更されません。