アプリ版:「スタンプのみでお礼する」機能のリリースについて

system から得た情報を変数に入れるには、どうしたらよいでしょうか。

$ls = system("ls -l");
これをスクリプトの中に置いてコマンドライン上から実行すると、そのまま、lsの結果が表示されてしまいました。

$ls は 0 を返します。

どうしたらよいのでしょうか。

A 回答 (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";

で、やってみて下さい。
    • good
    • 0
この回答へのお礼

うまく値を得ることができました。
ありがとうございます。
とても助かりました。

お礼日時:2001/07/15 07:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!