Nir*_*Nir 2 perl argv windows-7
以下代码仅适用于mac,但不适用于windows7.
perl -e "print @ARGV" aaa^bbb
Run Code Online (Sandbox Code Playgroud)
在Mac上(perl 5.10,darwin),它按预期打印出来:aaa ^ bbb
在Windows 7,32bit(ActivePerl 5.12)上打印出来:aaabbb
"^"字符被抛出@ARGV.这个字符是我正在使用脚本的文件名的一部分,所以我需要能够从@ARGV读取它.
我尝试使用"aaa\^ bbb",但它只打印出"aaa\bbb".
Kei*_*son 11
它不是放弃^字符的ActivePerl ,而是Windows命令提示符:
C:\>echo aaa^bbb
aaabbb
Run Code Online (Sandbox Code Playgroud)
你需要引用这个论点:
C:\>perl -e "print @ARGV" "aaa^bbb"
aaa^bbb
Run Code Online (Sandbox Code Playgroud)
或者你可以用第二个插入符号来逃避它:
C:\>perl -e "print @ARGV" aaa^^bbb
aaa^bbb
Run Code Online (Sandbox Code Playgroud)
插入符^是一个转义字符,类似于\Unix shell.