- ベストアンサー
system から得た情報を変数に入れる方法
system から得た情報を変数に入れるには、どうしたらよいでしょうか。 $ls = system("ls -l"); これをスクリプトの中に置いてコマンドライン上から実行すると、そのまま、lsの結果が表示されてしまいました。 $ls は 0 を返します。 どうしたらよいのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
OS環境が書かれていないのでちょっと自信ありませんが、 Windows 用の ActivePerl と Jperl で確認しました。 ---------- system() を使わずに、 $ls = `ls -l`; (←逆シングルクオートで囲む) というのはどうでしょう? これで、ls -l の結果を $ls に入れることができます。 ただし、最後の改行もそのまま入ってくるので、これを取り除きたい 場合は、 chop ($ls = `ls -l`); とすれば、うまくいきます。 コマンド実行の結果(正常/異常)も知りたい場合は、 この後で $? 変数を参照すればいいでしょう。試しに chop ($ls = `ls -l`); ←パスをいろいろ変えてみて… print "---\n",$ls,"---\n"; print "Status $?\n"; で、やってみて下さい。
お礼
うまく値を得ることができました。 ありがとうございます。 とても助かりました。