コマンドがスクリプトから出てくるのか、コマンドラインに手動で入力されているのかを調べることは可能ですか?

コマンドがスクリプトから出てくるのか、コマンドラインに手動で入力されているのかを調べることは可能ですか?

カスタムコマンドを使用して特定のツールの環境を設定できる実装があります。

例: custom_command tool_name

このコマンドは、通話時間、ユーザー、およびツール名をログファイルに記録します。

これらのログにより、特定のツールが最後に使用された時期を確認できます。

これで、ユーザーはログインプロファイルにコマンドを入力することに慣れています。

もしそうなら、コマンドラインまたは他のスクリプトから手動で入力してcomamndが呼び出されていることを確認できますか?もしそうなら、スクリプト名は何ですか?

いくつかの方法を試してみました。私が見つけることができるのは、シェルという親スクリプト名だけです。

私の理解はこれが不可能だということです。しかし、私はちょうど私の幸運を試してみたかった。

ベストアンサー1

bashスクリプトでは通常、次のようにします。

#!/bin/bash

if test "$0" != "$BASH_SOURCE"; then
    SOURCED=1
    MY_NAME=$BASH_SOURCE
else
    SOURCED=0
    MY_NAME=$0
fi

# do something here

if test "$SOURCED" = "1"; then
    # use return instead of exit
    return
fi

# do something here only when not sourced
exit

おすすめ記事