我希望我的perl脚本能够正确地将由空格分隔的两个命令行参数解析为两个变量:
$ cat 1.pl
print "arg1 = >$ARGV[0]<\n";
print "arg2 = >$ARGV[1]<\n";
$ perl 1.pl a b
arg1 = >a<
arg2 = >b<
$ perl 1.pl "a b"
arg1 = >a b<
arg2 = ><
$
Run Code Online (Sandbox Code Playgroud)
是否存在处理此问题的通用方法,而不是尝试检测是否使用了引号?
Que*_*tin 10
shell将数据传递给Perl.
program a b将发送a和bprogram 'a b' 会寄 a bprogram "a b" 会寄 a bprogram a\ b 会寄 a bPerl有AFAIK,无法区分最后三个中的任何一个.
你可以split在空间上的每一个参数,这将获得你正在描述的效果......但它将意味着以不同的方式工作到那里的每个其他应用程序.