我正在尝试以路径名/Volumes/NO NAME
转义空格。我需要通过bash
脚本访问此目录中的文件。我使用过sed
和printf
命令,似乎都没有用。我到目前为止的代码:
while read line
do
if [[ -d ${line} ]]; then
echo "${line} is a directory. Skipping this.";
elif [[ -f ${line} ]]; then
spacedOutLine=`echo ${line} | sed -e 's/ /\\ /g'`;
#spacedOutLine=$(printf %q "$line");
echo "line = ${line} and spacedOutLine = ${spacedOutLine}";
else
echo "Some other type of file. Unrecognized.";
fi
done < ${2}
这两项似乎都没有奏效。对于像/Volumes/NO NAME/hello.txt
这样的输入,输出为:
/Volumes/NO: No such file or directory
NAME/hello.txt: No such file or directory
我在Mac上并通过终端使用bash
。关于这一点,我也经历了很多其他关于此事的帖子,这对我没有帮助。
答案 0 :(得分:1)
在调用${line}
变量时使用双引号。
"${line}"