尋ねる: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
実際のパスに変更します。