假设我在变量DIR
中有一个目录路径,我想列出这个目录。如果我只关心路径中的空格,那么我可以做
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?>
答案 0 :(得分:4)
行情不只是针对空间而是针对所有内容,因此使用双引号是您需要的安全级别。
来自Bash Reference Manual on Quoting:
3.1.2.3双引号
用双引号括起字符('&#34;')会保留引号内所有字符的字面值,但'$','`','\'以及启用历史记录扩展时除外,'!'。
让我们将此字符串存储到一个文件中供以后使用。
async/await
读入var:
$ cat file
Mick O'Neil (the "Terminator")
检查其值:
$ filename=$(<file)
使用此值创建文件:
$ echo "$filename"
Mick O'Neil (the "Terminator")
检查它是否已成功创建:
$ touch "$filename"