bashスクリプトで予行演習オプションをどのように実装しますか?
スクリプトがドライランで実行されている場合、すべてのコマンドをifでラップし、コマンドを実行する代わりにコマンドをエコーアウトすることを考えることができます。
別の方法は、関数を定義し、その関数を介して各コマンド呼び出しを渡すことです。
何かのようなもの:
function _run () {
if [[ "$DRY_RUN" ]]; then
echo $@
else
$@
fi
}
`_run mv /tmp/file /tmp/file2`
`DRY_RUN=true _run mv /tmp/file /tmp/file2`
これは単に間違っているのですか、それを行うためのはるかに良い方法がありますか?
ええ、まさにそれ。内部変数は、コマンドが実際に実行されませんので、あなたの代わりに機能を介してそれらを渡すのは、bashに設定することができますがない場合、私は思ったんだけど
—
アンドレイSerdeliuc
この質問にコミュニティwikiのマークを付けるべきだった理由はありません。
—
追って通知があるまで一時停止します。
Bashはシェルです。ドライランを行う理由はありません。私はあなたがすでにやったよりもそれを行うより良い方法があるとは思わない。
—
d -_- b
_run()
関数のようなものを使用しますが、「set -xv」を使用することもありますが、より良い方法が必要です。