문자열과 큰따옴표가 포함된 다음 형식으로 인수를 전달해야 하는 쉘 스크립트에서 명령을 실행하려고 합니다.
command "string"
문자열은 변수 var1에 저장됩니다.
다음을 시도했지만 요구 사항을 달성할 수 없습니다. 누구든지 그것을 구현하는 방법을 제안할 수 있습니까? 나는 bash 쉘을 사용하고 있습니다.
command $var1
로 설명되었다command string`
command "$var1"
다음과 같이 해석됩니다.command string
command \"$var1\"
다음과 같이 해석됩니다.command '"string"'
command '"'$var1'"'
다음과 같이 설명되었습니다.command '"string"'
답변1
귀하의 요구 사항을 충족하는 솔루션은 다음을 사용하는 것입니다.
command \""$var1"\"
아니요, set -x 출력은 (정확히) command
수신된 출력이 아닙니다.
답변2
다음과 같이 변수를 설정할 수 있습니다.
$ var='"string"'
$ echo $var
"string"
또는
$ var=string
$ echo $var
string
$ echo "\"$var\""
"string"
$ ls "\"$var\""
ls: cannot access "string": No such file or directory
나는 이것이 우리가 기대했던 것이라고 믿습니다.