在别名中设置错误的退出代码

在别名中设置错误的退出代码

我向 .bashrc 添加了一些别名,以阻止人们使用标准命令,因为在标准命令中需要更复杂的过程来实现所需的结果。但是,如果从脚本调用别名,如何设置退出代码呢?理想情况下不会生成诸如“没有这样的文件或目录”之类的虚假错误消息(我确实发现,但肯定有更干净的方法吗?)

例如

 alias useradd='echo "Nope....you should be using the custom script."'

应该导致......

 # useradd newuser
 Nope....you should be using the custom script.
 # echo $?
 -1
 #

答案1

您应该使用函数而不是别名。

useradd () {
  echo "Nope....you should be using the custom script." >&2
  return 2
}

在 Bash 中,何时使用别名、何时使用脚本以及何时编写函数?有关别名的限制和函数的有用性的更多信息。

另请注意,无论您使用函数还是别名,您的用户都可以通过使用command内置函数或简单地转义命令名称来绕过它们,例如:

\useradd ...

相关内容