私は、冗長モードとサイレントモードの両方で実行できるスクリプトを作成したいと思う。私の考えは、"&> /dev/null"
を含む変数を作成することでした。スクリプトがサイレントモードで実行されている場合、私はそれをクリアします。サイレントモードは正常に動作しますが、これを最後の「引数」として渡したい場合(私の例を参照)、動作しません。ここでBashの変数でSTDOUTをリダイレクト
は一例です: 私はzip
何か(私は質問がよりtheorethicalのようなものです、-q
オプションが存在しているはず)にしたいと、私はこれを書いている場合、それは私が意図したとおりに動作します。
$ zip bar.zip foo
adding: foo (stored 0%)
$ zip bar.zip foo &> /dev/null
$
しかし、私は、変数として&> /dev/null
を宣言するとき、私はこれを取得:
$ var="&> /dev/null"
$ zip bar.zip foo "$var"
zip warning: name not matched: &> /dev/null
updating: foo (stored 0%)
私が意図してスクリプトの一部をリダイレクトするために他のソリューションを見ましたが、私の考えは仕事ともしできない場合、私は好奇心が強い、wはこんにちは? 私が唯一のいくつかの行またはコマンドをリダイレクトする必要があるので、私のスクリプトでは、このようなものを使用する方が便利なもののif
でそれぞれを囲むようにあまりにも多くなります
私は明確にするために、このような何かをしようとしている:
if verbose
verbose="&> /dev/null"
else
verbose=
command1 $1 $2
command2 $1
command3 $1 $2 $3 "$verbose"
command4
eval: 'eval zip bar.zip foo" $ var "'を使用します。 – pynexj
またはif文を使用します。コマンドを実行します。 elseコマンド>&/ dev/null; fi' – pynexj
上記と以下で述べたように、私はすべてを 'if'sで囲み、' eval'は落胆させたくありません。 – Wax