我是shell脚本的新手.有人可以用命令帮助我用"\"来逃避空间.我有一个变量FILE_PATH =/path /到我的/文件文件,
我想单独转义空格FILE_PATH =/path /到\ my/text\file
我尝试使用tr -s命令,但它没有帮助
FILE_PATH =echo FILE_PATH | tr -s " " "\\ "
有人可以建议正确的命令!!
Bao*_*jun 37
如果你使用bash,你可以使用它的内置printf的%q格式化程序(键入help printf
bash):
FILENAME=$(printf %q "$FILENAME")
Run Code Online (Sandbox Code Playgroud)
这不仅会引用空间,还会引用shell的所有特殊字符.
Wil*_*ell 10
使字符串更安全而不仅仅是转义空格,但你可以通过以下方式转义空格:
FILE_PATH=$( echo "$FILE_PATH" | sed 's/ /\\ /g' )
Run Code Online (Sandbox Code Playgroud)
您可以使用" 单引号 "在包含空格的路径上操作:
cp '/path/with spaces/file.txt' '/another/spacey path/dir'
grep foo '/my/super spacey/path with spaces/folder/*'
在脚本中:
#!/bin/bash
spacey_dir='My Documents'
spacey_file='Hello World.txt'
mkdir '$spacey_dir'
touch '${spacey_dir}/${spacey_file}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
72178 次 |
最近记录: |