如何使用我的$opt
變量執行Perl的qx
函數?如何使用變量執行Perl qx函數
之前(的作品):
my @df_output = qx (df -k /tmp);
我想請使用-k
,-g
,或-H
:
my @df_output = qx (df -$opt /tmp);
如何使用我的$opt
變量執行Perl的qx
函數?如何使用變量執行Perl qx函數
之前(的作品):
my @df_output = qx (df -k /tmp);
我想請使用-k
,-g
,或-H
:
my @df_output = qx (df -$opt /tmp);
你有什麼應該工作,但:永遠不要使用qx
。這是古老而危險的;無論您是否通過殼體進行操作,所以如果/bin/sh
不是您所期望的,那麼容易受到殼體注射的影響或碰到意外。
使用open()
的多參數形式,它完全繞過了shell。
open my $fh, '-|', 'df', "-$opt", '/tmp' or die "Can't open pipe: $!";
my @lines = <$fh>; # or read in a loop, which is more likely what you want
close $fh or die "Can't close pipe: $!";
嘗試使用反斜槓\$opt
,它的工作原理。
這不能提供對該問題的回答。要評論或請求作者澄清,請在下面留言他們的帖子 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將能夠[評論任何帖子](http:///stackoverflow.com/help/privileges/comment) – IanAuld 2014-08-29 03:36:52
@IanAuld。爲什麼這不是答案? – 2014-08-29 04:32:09
當您嘗試此代碼時發生了什麼? – mob 2011-06-16 21:21:56
'使用未初始化的值連接(。)或字符串在。/ tst.pl'。還有'df: - :沒有這樣的文件或目錄'。有趣的是,我仍然得到了工作成果,但有了這些消息。 – jdamae 2011-06-16 21:25:55
這些意思是'$ opt'沒有定義。 – Eevee 2011-06-16 21:27:55