2017-03-01 29 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

相關問題