我过去曾set -f
在 bash 中使用过以防止全局扩展 - 但是这似乎不再适用于我的 mac:
$ cat script.sh
#!/bin/bash
echo $0
i=1
for var in $@
do
echo "$i => $var"
((i++))
done
$ set -f
$ ./script.sh *
./script.sh
1 => program
2 => program.cpp
3 => script.sh
随着set -f
我期望的输出是
$ ./script.sh *
./script.sh
1 => *
我缺少什么以及如何停止扩展。