在我的系统上*
cd # move to home
mkdir tempdir
PATH="$PATH:~/tempdir" # put tempdir in path
touch tempdir/tempscript
echo -e '#!/bin/bash\necho h' > tempdir/tempscript # write script
chmod u+x tempdir/tempscript # make executable
tempscript # execute
将找到脚本tempdir/tempscript
并打印h
。
但是,如果我们 echo $PATH
,我们会看到~/tempdir
它的末尾,所以它没有被扩展。这是我们期望发生的,因为我们在赋值两边加上了双引号。
但是,我找不到任何文档说明为什么在评估$PATH
. (请注意,PATH 变量中仍然包含~
。)
这是便携式行为吗?
* 带有 GNU bash 3.2 的 Mac OS X