我想在我的perl腳本意外令牌附近的語法錯誤`|' Perl代碼
my $command = `ps -p $pidnumber | wc -l`;
執行此,但是當我運行該腳本,它告訴我這樣的事情:
SH:-c:線路1:語法附近意外的錯誤標記`|'
sh:-c:line 1:`| wc -l'
這可能是哪個錯誤?
我想在我的perl腳本意外令牌附近的語法錯誤`|' Perl代碼
my $command = `ps -p $pidnumber | wc -l`;
執行此,但是當我運行該腳本,它告訴我這樣的事情:
SH:-c:線路1:語法附近意外的錯誤標記`|'
sh:-c:line 1:`| wc -l'
這可能是哪個錯誤?
$pidnumber
是否以換行結束?請參閱chomp
函數。
嘗試打印之前執行的命令,因爲$pidnumber
可能有一些奇怪:如果換行出現在打印一句
my $command_str = "ps -p $pidnumber | wc -l";
print $command_str, "\n";
my $command = qx!$command_str!;
爲@mob說,使用格格。
'使用Data :: Dumper;本地$ Data :: Dumper :: Useqq = 1; print(Dumper($ command_str));'在尋找古怪方面更有用,特別是尾隨的換行符。 – ikegami
我與其他答案同意管之前額外的換行符是很可能的原因
但該命令並不真正需要管!
力的報價命令返回它的值作爲一個表,然後獲取列表的長度和你有廁所-l「行數」
my $command_str = "ps -p $pidnumber";
my $linecount =() = qx!$command_str!;
凡$ pidnumber哪裏來的?可能會附加一個換行符? – RickF