Bash

bash 在執行之前重新處理一個字元串

  • September 25, 2019

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 你的變數將把變數作為你需要執行的命令的文本來執行

引用自:https://unix.stackexchange.com/questions/543693