ログインしたユーザーが実行したスクリプトのフルネームをどのように知ることができますか?

ログインしたユーザーが実行したスクリプトのフルネームをどのように知ることができますか?

ユーザーがスクリプトに提供したオプション/引数を含む、ユーザーが実行したスクリプトのフルネームを記録したいと思います。

basename私は使用していくつかの成功を収めることができたが、whoamiそれは私に議論を呼び起こさなかった。

例:ユーザーが次のスクリプトを実行しているとします。

root@host1:./collect_user_summary.ksh -h 20 -l 10 -x local

マイログファイルに希望の出力:

"collect_user_summary.ksh -h 20 -l 10 -x local"

私が達成したこと:そしてbasename私はwhoami得ることができます

"collect_user_summary.ksh  username"

私の環境:Solaris 10、コンシェル。

答え1

更新:ほとんどの場合、端末に入力されたすべてのコマンドを記録するように指示したようです。私はそれをしたくありません。私が望むのは、誰かが私のスクリプトを実行するたびに、スクリプト名とともに彼が提供するオプションを記録するだけです。

しばらく考えたところでついに理解するようになりました。私はそれを達成するために次の方法を使用しています。 スクリプト例:

#!/bin/ksh
NAME=`basename $0`
echo `date` $WHOAMI ran this script $NAME with options -h $HVARIABLE -l $LVARIABLE -x $LOCALVARIABLE >> scripts.log
.
..
..
....
echo "SUCCESS" >> scripts.log
exit 0

私のすべてのスクリプトにこの2行を含めることで、誰が何をしているのか、彼らが提供するオプションは何であるかを記録できます。

関連情報