我已经创建了一个目录〜/ test_myDir
然后我运行以下bash脚本:
batch_size
我收到以下错误:
x="myDir"
dirName="~/test_$x"
cd $dirName
echo "hey" > test.txt
然后我从第二个作业中删除了引号:
test.sh: line 5: cd: ~/test_myDir: No such file or directory
脚本运行时没有错误。
这里发生了什么?我在一个更大,更复杂的脚本中遇到了这个问题,我把它缩小到我在包含另一个变量的变量赋值中使用引号。
仍然,从错误消息中,看起来在“cd”调用中正确扩展了完整路径。
答案 0 :(得分:1)
引号可防止~
的扩展。将~
替换为$HOME
或使用dirName=~/"test_$x"
。
从手册对波浪扩展的解释:
检查每个变量赋值是否紧跟在:或第一个=后面的未加引号波浪号前缀。在这些情况下,波浪扩展是 也表演了。