Aiv*_*var 2 linux macos bash command-line
假设我有一个变量目录路径DIR,我想列出该目录。如果我只关心路径中的空格,那么我可以这样做
ls "$DIR"
Run Code Online (Sandbox Code Playgroud)
如果我想在目录路径中也支持单引号和双引号以及其他奇怪的东西,我应该写什么?例子:
DIR="/Users/Mick O'Neil (the \"Terminator\")/Desktop"
echo $DIR # prints /Users/Mick O'Neil (the "Terminator")/Desktop
ls <what should I write here?>
Run Code Online (Sandbox Code Playgroud)
引号不仅适用于空格,也适用于所有内容,因此使用双引号是您此处所需的安全级别。
\n来自Bash 引用手册:
\n\n\n3.1.2.3 双引号
\n将字符括在双引号 (\xe2\x80\x98"\xe2\x80\x99) 中会保留引号内所有字符的字面值,但 \xe2\x80\x98$\xe2\x80\x99、\ 除外xe2\x80\x98`\xe2\x80\x99、\xe2\x80\x98\\\xe2\x80\x99,当启用历史扩展时,\xe2\x80\x98!\xe2\x80\x99。
\n
让我们将此字符串存储到文件中以供以后使用。
\n$ cat file\nMick O\'Neil (the "Terminator")\nRun Code Online (Sandbox Code Playgroud)\n读入变量:
\n$ filename=$(<file)\nRun Code Online (Sandbox Code Playgroud)\n检查其值:
\n$ echo "$filename"\nMick O\'Neil (the "Terminator")\nRun Code Online (Sandbox Code Playgroud)\n创建一个具有该值的文件:
\n$ touch "$filename"\nRun Code Online (Sandbox Code Playgroud)\n检查是否创建成功:
\n$ lt "$filename"\n-rw-r--r-- 1 me me 0 Mar 1 15:09 Mick O\'Neil (the "Terminator")\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6097 次 |
| 最近记录: |