2017-03-01 22 views
3

假设我在变量DIR中有一个目录路径,并且我想列出此目录。如果我在路径只关心空格,然后我可以做引用包含引号的文件名,并在Bash中给出变量

ls "$DIR" 

我应该写,如果我想也支持单,双引号和其他怪异的东西在目录路径?例如:

DIR="/Users/Mick O'Neil (the \"Terminator\")/Desktop" 
echo $DIR # prints /Users/Mick O'Neil (the "Terminator")/Desktop 
ls <what should I write here?> 

回答

4

行情不只是空间,但一切,所以使用双引号是你需要在这里的安全水平。

Bash Reference Manual on Quoting

3.1.2.3双引号

双引号引起的字符(““”)保留了引号中的所有字符的字面意义,‘$’除外''', '\',并且,如果启用了历史扩展, '!'。


让我们店这个字符串转换成网络。文件供以后使用

$ cat file 
Mick O'Neil (the "Terminator") 

读入一个变种:

$ filename=$(<file) 

检查它的值:

$ echo "$filename" 
Mick O'Neil (the "Terminator") 

创建此值的文件:

$ touch "$filename" 

检查它已成功创建:

$ lt "$filename" 
-rw-r--r-- 1 me me 0 Mar 1 15:09 Mick O'Neil (the "Terminator") 
+1

哇,所以这是一个非问题:) 谢谢! – Aivar

+0

哈哈,正是:) – fedorqui

相关问题