1. ホーム
  2. スクリプト・コラム
  3. パール
  4. 基本チュートリアル

Perlシェルコマンド呼び出しのメソッド概要

2022-01-29 16:23:03

I. システム
perl は system を使ってシェルコマンドを呼び出すこともできます。これは awk の system と同じで、戻り値は呼び出したコマンドの終了ステータスになります。

コピーコード コードは以下の通りです。

[root@AX3sp2 ~]# cat aa.pl
#! /usr/bin/perl -w
$file = "wt.pl";
system("ls -l wt.pl");
$result = system "ls -l $file";
print "$result \n"; # Output the exit status of the command
system "date";

[root@AX3sp2 ~]# perl aa.pl
-rwxr-xr-x 1 root root 126 12-16 15:12 wt.pl
-rwxr-xr-x 1 root root 126 12-16 15:12 wt.pl
0
Thu, Dec 16, 2010 15:58:34 CST     


II. バッククォート
perl のシステム関数は awk と同じで、コマンドの出力を返しません。
コマンドの出力を得るには、シェル自身と同じように ` `
コピーコード コードは以下の通りです。

[root@AX3sp2 ~]# cat bb.pl
#! /usr/bin/perl
print `date`;
print "this is test \n";

[root@AX3sp2 ~]# perl bb.pl
Thu, Dec 16, 2010 15:51:59 CST
This is test


iii.
最後に、perlはexecを使用してシェルコマンドを呼び出すこともできます。違いは、exec を呼び出した後、perl は直ちに終了し、残りのコードの実行を継続しないことです。
コピーコード コードは以下の通りです。

[root@AX3sp2 ~]# cat cc.pl
#! /usr/bin/perl
exec ("echo this is test");
print "good bye ! \n"; #This sentence will not be output

[root@AX3sp2 ~]# perl cc.pl
This is test