我有一個Perl腳本test.pl從讀取命令行參數參數傳遞給Perl程序不保留空間
#!/usr/bin/perl -w
for(@ARGV) { print("$_\n") } ;
這種運作良好,當我通過像「AB」參數「 CD的」 e在命令行上
結果是:
a b
c d
e
如果我聲明變量
X='"a b" "c d" e'
然後運行
test.pl $X
我得到
"a
b"
"c
d"
e
我需要運行各種shell腳本的Perl腳本作爲一個輔助功能和參數由這些腳本來計算。
參數數量不固定,所以我必須將其作爲列表傳遞。
唉,我無法找到一種方法讓perl程序根據需要處理我的參數。
我曾想過通過文件傳遞參數,但隨後從命令行手動調用perl腳本變得很笨拙。
我怎樣才能讓perl腳本保存參數中的空格?
論點'perl'腳本傳遞被保存在'@'ARGV' array'所以,當你打印出來給這個數組的價值觀和打印出來給,因爲它不保護你的論點,空間之間的空間,不同的參數用於識別不同的參數。 – AbhiNickz
的可能的複製[Perl腳本具有命令行參數爲空格(http://stackoverflow.com/questions/1267829/perl-script-that-has-command-line-arguments-with-spaces) – AbhiNickz
傳遞參數上如上所述,命令行工作正常。不起作用的是通過變量傳遞參數。 – user333869