スクリプトにコマンドオプションを追加するような変数を介してstdoutとstderrをリダイレクトする方法はありますか?
たとえば、スクリプトがあります:
#!/bin/bash -x
TEST=">/dev/null 2>&1"
OPT='-p -v'
mkdir $OPT 123/123/123 $TEST
OPTは-p
問題なく置き換えられ、bashはそれをオプションとして解釈することがわかります。ただし、リダイレクトはディレクトリ名として解釈されます。
$ ./test.sh
+ TEST='>/dev/null 2>&1'
+ OPT='-p -v'
+ mkdir -p -v 123/123/123 '>/dev/null' '2>&1'
mkdir: created directory `123/123'
mkdir: created directory `123/123/123'
mkdir: created directory `>/dev'
mkdir: created directory `>/dev/null'
mkdir: created directory `2>&1'
bashと言う方法はありますか。$ VARはリダイレクト名であり、dirs名ではありません。
PS。間違った方向に進んでいる可能性がありますが、スクリプトからオプションの冗長または非冗長出力を作成したいです。しかし、非冗長モードでも出力が必要なので、スクリプト内の一部のコマンドからのみ、stdoutとstderr全体をリダイレクトすることはできません。