我发现波浪号扩展不适用于以下情况:
$ set -x
$ ./print_arg.pl destdir=~/test
+ ./print_arg.pl 'destdir=/root/test'
destdir=/root/test
$ ./print_arg.pl dest-dir=~/test
+ ./print_arg.pl 'dest-dir=~/test'
dest-dir=~/test
$ ./print_arg.pl -destdir=~/test
+ ./print_arg.pl '-destdir=~/test'
dest-dir=~/test
print_arg.pl 的内容是
#!/usr/bin/perl
print $ARGV[0],"\n";
根据Shell 处理顺序,Shell 会在“波浪扩展”之前拆分单词。我注意到分词实际上是不同的。结果不同的原因是什么?