ユーザーがスクリプトに提供したオプション/引数を含む、ユーザーが実行したスクリプトのフルネームを記録したいと思います。
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行を含めることで、誰が何をしているのか、彼らが提供するオプションは何であるかを記録できます。