我想在腳本本身內提取用戶名,執行perl腳本。從Perl腳本中提取用戶名
我正在執行whoami
從perl的linux命令如下,它工作得很好。
my $whoami = `whoami`;
chomp $whoami;
print $whoami;
我的意圖是擺脫從Perl腳本調用系統命令。因此我在尋找Perl只有的解決方案。我想知道是否有任何可以提取系統信息的CPAN模塊。
您的建議在這方面將不勝感激。
我想在腳本本身內提取用戶名,執行perl腳本。從Perl腳本中提取用戶名
我正在執行whoami
從perl的linux命令如下,它工作得很好。
my $whoami = `whoami`;
chomp $whoami;
print $whoami;
我的意圖是擺脫從Perl腳本調用系統命令。因此我在尋找Perl只有的解決方案。我想知道是否有任何可以提取系統信息的CPAN模塊。
您的建議在這方面將不勝感激。
perl -le 'print scalar getpwuid $<'
你或許應該採取在看看哈希%ENV。它包含有關腳本運行環境的有用信息。 (在Windows)
一個例子來獲取用戶名是:
perl -E "say $ENV{'USERNAME'}"
爲任何LOGNAME
或USER
bash的替代USERNAME
。
感謝您的回覆。但是我使用的是linux env,它提供錯誤說明* ENV:未定義變量。* – jkshah
Perl可以直接映射到系統getpw*
函數。
這些程序與系統C 庫中的對應程序相同。在列表上下文,從各個的返回值獲得 程序如下:
($名稱,$ passwd文件,$ UID,$ GID, $配額,$評論,$ GCOS,$目錄,$外殼, $ expire)= getpw *
- 從perldoc -f getpwuid
。
使用getpwuid
與$<
作爲參數(其中,根據perldoc perlvar
是「這個過程的實際uid」,並且也可作爲$REAL_USER_ID
和$UID
),並會首先返回的值。
+1以獲得詳細解釋。 – jkshah
謝謝!這工作得很好! – jkshah