簡體   English   中英

Perl腳本中的Shell命令

[英]Shell command inside Perl Script

所有

我有以下shell命令按預期在shell上工作,但在perl內部調用時不起作用

Shell命令:

grep -P -s -irl --include \*.v "\s+hello\s?[(].*" <PATH> 

工作正常

在Perl內部:

$inst_search = `grep -P -s -irl --include \*.v "\s+$inst\s?[(].*" @plt_dirs`;

不工作

我懷疑我在grep中缺少正則表達式。.請糾正我!

謝謝,Vivek

試試這個:

$inst_search = qx#grep -P -s -irl --include \*.v "\s+$inst\s?[(].*" @plt_dirs#;

或使用任何其他非字母數字字符代替"#"進行引用。

當使用字符串調用exec / system / qx(或反引號)時,Perl將轉義特殊的Shell字符。

嘗試使用exec或系統函數,但傳遞一個列表,例如

system('grep', '-P', '-s', '-irl', '--include', '\*.v', '"\s+hello\s?[(].*"', @plt_dirs);

您可能還需要查看一個為您執行一些錯誤處理的模塊,例如IPC :: System :: Simple。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM