따라서 몇 가지 간단한 명령을 변수에 넣은 다음 줄 시작 부분에서 해당 변수를 호출하면 실제로 해당 명령이 사용됩니다. 예를 들어:
yes@no:~$ nnn="ls -l Super"
yes@no:~$ $nnn
-rw-rw-rw- 1 yes yes 6 May 29 19:46 Super
case
그러나 특수 문자가 포함된 항목을 사용하려고 하거나 또는 같은 항목을 사용하려고 하면 if
작동하지 않습니다.
yes@no:~$ nnn="ls -l|grep Super"
yes@no:~$ $nnn
ls: invalid option -- '\'
Try 'ls --help' for more information.
또는:
yes@no:~$ duper="if [[ ${ar} -eq 2 ]]; then echo yes; else echo no; fi"
yes@no:~$ "$duper"
if [[ -eq 2 ]]; then echo yes; else echo no; fi: command not found
분명히 여기에는 내가 이해하지 못하는 더 깊은 뭔가가 있습니다.
답변1
따옴표 줄 바꿈은 특수 문자를 이스케이프 처리하여 리터럴로 처리합니다. 당신이 찾고 있는 행동을 유발하기 위해서는 당신이 해야 할 일이 있습니다.
eval "$nnn"
eval "$duper"