0

コマンドを含むスクリプトがある場合

echo xx 2>&1 >junk

「xx」が含まれるファイルを取得します。スクリプトがある場合

R="2>&1 >junk"
echo xx $R

スクリプトは"xx 2>&1 >junk"、必要なファイルを作成する代わりに を出力します。
可変のリダイレクトを行うにはどうすればよいですか? この場合、リダイレクトを実行するか、変数を空の文字列に設定してリダイレクトを実行しないようにします。しかし、いくつかのコマンドに対して行う必要があるため、変数として行いたいと考えています。
注: 環境は、busybox の ash シェルを備えた組み込み Linux です。

4

1 に答える 1

1

eval を使用:

R="2>&1 >junk"
eval echo xx $R

ところで、コマンドの stderr をファイルにリダイレクトする場合は、リダイレクトの順序を変更する必要があります。 cmd 2>&1 > filestderr を元の stdout に出力しますがcmd > file 2>&1、stderr と stdout の両方を指定されたファイルに出力します。

于 2012-10-03T03:32:47.430 に答える