Bash
bash 在執行之前重新處理一個字元串
hello world
考慮在目前目錄中呼叫一個目錄。是的,該目錄中有一個空格。例如,假設它有一個名為 f1.txt 的文件。ls 'hello world'
將列印
f1.txt
但
a="ls 'hello world'" $a
說
ls: cannot access ''\''hello': No such file or directory ls: cannot access 'world'\''': No such file or directory
所以問題是如何讓 ls 列出目錄
hello world
。基本上如何做到這一點a="1 2" b="ls $a" $b
實際列出文件夾的內容
hello world
PS:我不想做
a="1 2" ls $a
我想儲存它然後執行它
francois@zaphod:~$ mkdir "hello world" francois@zaphod:~$ touch "hello world"/{a,b,c} francois@zaphod:~$ a="ls 'hello world'" francois@zaphod:~$ eval "$a" a b c francois@zaphod:~$
eval 你的變數將把變數作為你需要執行的命令的文本來執行