我正在使用Mac。我有一个名为 1的目录。目录测试
中的(名称中有空格)现在,以下ksh脚本
typeset MyPath=1.*
print $MyPath
cd $MyPath
pwd
cd ..
touch $MyPath/File.txt
产生
1. A
Test/1. A
touch: 1.*/File.txt: No such file or directory
因此,看起来印刷和CD都识别出图案“1. A”但触摸却没有。为什么呢?
答案 0 :(得分:2)
总是引用您的变量,除非您希望在空格和wilcards上展开扩展。
MyPath=$(IFS= echo 1.*)
print "$MyPath"
cd "$MyPath"
pwd
cd ..
touch "$MyPath/File.txt"
echo 1.*
扩展了通配符。赋值IFS=
通过清除字段分隔符变量来禁用分词(如果名称有多个连续的空格,则需要这样做,否则它们将被合并)。