3

スクリプト自体の中で、perl スクリプトを実行してユーザー名を抽出したいと考えています。

次のようにperlからLinuxコマンドを実行whoamiしていますが、かなりうまく機能します。

my $whoami = `whoami`;
chomp $whoami;
print $whoami;

私の意図は、perl スクリプトからシステム コマンドを呼び出さないようにすることです。したがって、 Perl のみのソリューションを探しています。システム情報を抽出できる CPAN モジュールが利用できるかどうか疑問に思っていました。

この点に関するご提案をお待ちしております。

4

3 に答える 3

8
perl -le 'print scalar getpwuid $<'
于 2013-10-07T11:02:42.147 に答える
3

getpw*Perl には、システム関数への直接マッピングがあります。

これらのルーチンは、システム C ライブラリの対応するルーチンと同じです。リスト コンテキストでは、さまざまな get ルーチンからの戻り値は次のとおりです。

($name,$passwd,$uid,$gid, $quota,$comment,$gcos,$dir,$shell,$expire) = getpw*

-- からperldoc -f getpwuid

引数としてgetpwuidwithを使用し (これは、「このプロセスの実際の uid」であり、 および としても使用できます) 、最初の戻り値を取得します。$<perldoc perlvar$REAL_USER_ID$UID

于 2013-10-07T11:19:34.397 に答える