特定のパラメータを使用して実行されるコマンドの実行を他のパラメータ以外のコマンドに切り替えるにはどうすればよいですか?

特定のパラメータを使用して実行されるコマンドの実行を他のパラメータ以外のコマンドに切り替えるにはどうすればよいですか?

尋ねる:Linuxシステムでシステムコマンドとそのパラメータを置き換える方法は?

シナリオ:システムにパラメータを含むコマンドがあります。

例:

$ command -a restart
Output: something

私はその実行を置き換えたい特定そのコマンドを使用してください特定パラメータ(たとえば、command -a reload && echo hiこれにより、コマンドは再起動を行わずに再ロードを実行します。

メモ:

  • 他のパラメータが妨げられてはいけません。 command -a elseとして実行する必要がありますcommand -a else
  • このコマンドは root ユーザーに対してのみ実行されます。
  • パッケージの更新はコマンドファイルを置き換えるため、コマンドファイル自体を置き換えることはできません。

可能ですか?

ベストアンサー1

.bashrcまたは、ファイルに以下を追加します.bash_aliases

my_command_(){
    if [ "$1 $2" = "-a restart" ] ; then
        shift 2
        my_command -a reload "$@"
    else
        my_command "$@"
    fi
}
alias my_command="my_command_"

これも変わるよ

my_command -a restart -b something
到着する
my_command -a reload -b something

しかし、それは変わらないでしょうmy_command -b something -a restart


システム全体の選択肢:

$PATHコマンドがあるディレクトリの前の別のディレクトリにスクリプトを作成し、/usr/local/bin/my_command次の内容を使用して実行可能にします(例:)。

#!/bin/sh
if [ "$1 $2" = "-a restart" ] ; then
    shift 2
    /usr/bin/my_command -a reload "$@"
else
    /usr/bin/my_command "$@"
fi

/usr/bin/my_command実際のパスに変更します。

おすすめ記事