どのユーザー名から実行されるかを知る必要があるスクリプトがあります。
シェルから実行すると、bash によって提供される $ENV{"USER"} を簡単に使用できます。
しかし、どうやら、同じスクリプトが cron から、また bash 経由で実行されると、$ENV{"USER"} は定義されません。
もちろんできます:
my $username = getpwuid( $< );
しかし、見た目は良くありません。もっと良い/良い方法はないでしょうか? このスクリプトは個人的な使用を目的としたものであり、Linux でのみ実行されるため、システムに依存しない必要はありません。
ベストアンサー1
いくつかの場所から回答を得てみてください。最初の場所が勝ちです。
my $username = $ENV{LOGNAME} || $ENV{USER} || getpwuid($<);