명령을 변수에 저장 cmd
하고 다음 명령문을 사용하여 명령의 출력을 얻습니다.
echo `$cmd`
줄 바꿈이 누락된 것을 제외하고는 모든 것이 잘 작동합니다 ls -l
.
답변1
명령을 문자열 변수에 저장한 경우 이를 실행하려면 다음이 필요합니다.
eval "$cmd"
$cmd
이는 명령에 공백을 제외한 쉘 특수 문자가 포함되지 않은 경우에만 작동합니다. 일반적으로 문자열 변수에 명령을 저장하는 것은 좋지 않습니다. 함수를 정의하는 것이 더 좋습니다.
cmd () {
ls -l
}
그런 다음 실행할 수 있습니다 cmd
.
가장 즉각적인 문제는 따옴표 없이 명령 대체를 사용하기 때문에 명령 출력이 더 손상된다는 것입니다. 변수 및 명령 대체에는 큰따옴표를 사용해야 합니다. cmd
함수로 정의됩니다 :
echo "`cmd`"
복잡한 명령으로 인해 당황하지 않으려면 백틱 대신 달러 괄호를 사용하세요.
echo "$(cmd)"
바라보다공백이나 기타 특수 문자 때문에 쉘 스크립트가 멈추는 이유는 무엇입니까?설명을 위해.