考虑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
我想存储它然后才运行它
答案1
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 您的变量将执行该变量作为您需要运行的命令的文本