これらの行に沿って何かをしたいのですが、試したほとんどの組み合わせは失敗しました:
export no_error="2 > /dev/null"
./some_command $no_error
そのコマンドを実行し、コマンドを入力する代わりに変数を使用して出力をリダイレクトするには。どうすればこれを行うことができますか?
これらの行に沿って何かをしたいのですが、試したほとんどの組み合わせは失敗しました:
export no_error="2 > /dev/null"
./some_command $no_error
そのコマンドを実行し、コマンドを入力する代わりに変数を使用して出力をリダイレクトするには。どうすればこれを行うことができますか?
no_error
そのように使用すると、シェルは変数を再評価しません。./some_command
コマンドライン引数として渡されるだけです。を使用することで、必要な動作を得ることができますeval
。bash
マニュアルから:
eval [arguments]
引数は 1 つのコマンドに連結され、読み取られて実行され、その終了ステータスが の終了ステータスとして返されます
eval
。引数がない場合、または空の引数のみの場合、戻りステータスはゼロです。
あなたの場合の例を次に示します。
export no_error="2>/dev/null"
eval ./some_command $no_error
2
と の間にスペースを入れることはできないことに注意してください>
。でも、それはあなたの質問の単なるタイプミスだと思います。