次の状況では、チルダ展開が機能しないことがわかりました。
$ 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";
シェル処理の順序に従って、シェルは「チルダ展開」の前に単語を分割します。そして、単語の分割が実際には異なることに気付きました。結果が異なる理由は何ですか?