[英]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.