변수에 명령에 인수를 저장합니다. 내가 원하는 마지막 명령은 다음과 같습니다 여기 인용 부호는 bash 변수 내에서 존중하지 않습니다.
mock -r myconfig --define "debug_package %{nil}" --resultdir results --rebuild mypackage.src.rpm
내 시도입니다 :
set -x # for debugging
RESULTDIR=results
MOCK_CONFIG="myconfig"
MOCK_ARGS="-r $MOCK_CONFIG --define \"debug_package %{nil}\" --resultdir $RESULTDIR"
cmd="mock $MOCK_ARGS --rebuild mypackage.src.rpm"
$cmd
결과는 다음과 같습니다 당신이 볼 수 있듯이, --define
매개 변수에 인수가 존재하지 않는
+ RESULTDIR=results
+ MOCK_CONFIG=myconfig
+ MOCK_ARGS='-r myconfig --define "debug_package %{nil}" --resultdir results'
+ cmd='mock -r myconfig --define "debug_package %{nil}" --resultdir results --rebuild mypackage.src.rpm'
+ mock -r myconfig --define '"debug_package' '%{nil}"' --resultdir results --rebuild mypackage.src.rpm
ERROR: Bad option for '--define' ("debug_package). Use --define 'macro expr'
적절하게 인용했다. --define
나는 그것을 단지 불완전한 debug_package
으로 전달하고 있다고 생각합니다.
MOCK_ARGS
을 정의 할 때 여러 가지 변형을 시도했으며 심지어 debug_package
과 %{nil}
사이의 공백을 이스케이프 처리하려고했습니다.
이 인수 목록을 작성하고이 스크립트에서 명령을 실행할 수있는 따옴표 및/또는 이스케이프 조합은 무엇입니까?
EDIT :
I 가변 명령의 결과를 기억하고있어 그 이유는 그것이 어떤 기록을하는 함수로 전달되는 끝 때문에, 그 명령을 실행한다.
또한 나는 변수 대신 배열을 사용해야한다고 제안하는 this FAQ을 발견했습니다. 나는 배열을 실험하기 시작했지만 지금까지는 작동하는 해결책이 없다.
이것은 http://stackoverflow.com/questions/954390/echo-nested-quotation-marks-in-tcsh –
의 복제본처럼 보입니다. http://stackoverflow.com/questions/954390/echo- nested-quotation-marks-in-tcsh는 나를 위해 작동하지 않습니다. –
[bash 명령을 따옴표와 별표가있는 문자열로 저장하는 방법] (http://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a) -string-with-quotes-and-asterisk) –