Shell 脚本包装器可防止运行不带参数的命令?

Shell 脚本包装器可防止运行不带参数的命令?

比如说,我使用的一个程序xyz,如果我不带任何参数运行命令,就会产生不良影响。因此,我想防止自己意外地运行xyz不带参数的命令,但允许它带参数运行。

如何编写 shell 脚本,以便在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 

相关内容