스크립트에 명령 옵션을 추가하는 것과 같은 변수를 통해 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 이름이 아닌 리디렉션입니다.
추신. 내가 잘못 가고있을 수도 있지만 스크립트에서 선택적 verbose 또는 non verbose 출력을 만들고 싶습니다. 그러나 비 상세 모드에서도 일부 출력이 필요하므로 스크립트 내 일부 명령에서만 전체 stdout 및 stderr을 리디렉션 할 수는 없습니다.