引数なしでコマンドを実行するのを防ぐシェルスクリプトラッパー?

引数なしでコマンドを実行するのを防ぐシェルスクリプトラッパー?

xyzたとえば、引数なしでコマンドを実行すると、望ましくない結果が表示されるプログラムを使用しました。そのため、xyz誤って引数なしでコマンドを実行するのを防ぎ、引数を使用してコマンドを実行できるようにしたいと思います。

引数なしで呼び出されたときにエラーメッセージを印刷するようにシェルスクリプトを作成するにはどうすればよいですか?xyzそれ以外の場合、すべての引数がプログラムに渡されますかxyz

答え1

特殊変数を確認できます。$#:

if [ $# -eq 0 ]; then
  echo "No arguments provided!"
  exit 1
fi
/usr/bin/xyz "$@"

~/.bashrcそれから;

alias xyz="/path/to/script.sh"

これで実行されるたびにxyzエイリアスが開始されます。その後、スクリプトを呼び出して引数があるかどうかを確認し、xyz引数がある場合にのみ実際のコマンドを起動します。明らかに、/usr/bin/xyzコマンドのフルパスに変更します。

答え2

ほとんどの場合、フレームは次のようになります。

if [ "$1" ]
then
  /usr/bin/xyz "$@"
else
  echo "Errormessage"
fi 

関連情報