0
我試圖在路徑名中轉義空格/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
。我也經歷了很多關於這方面的其他文章,這些文章沒有幫助我。
不要試圖手動轉義變量值中的空格。只要引用變量,只要它被展開,並且空間將被保留。 – chepner