我向 .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 ...