Bash 如何将命令别名为空格?(或shell函数)
我看过的所有文档似乎都表明,在别名和shell函数中,名称不能包含空格 我试图做的是让其他root管理员更难对我们的Pass实现文档运行命令,这里:。这仍然是可能的,但我希望将诸如pass rm$anyValueTheyInput和alias这样的命令转换为echo“你不能那样做”。当然,他们是管理员,可以更改别名,但这有望防止意外删除密码Bash 如何将命令别名为空格?(或shell函数),bash,function,shell,alias,Bash,Function,Shell,Alias,我看过的所有文档似乎都表明,在别名和shell函数中,名称不能包含空格 我试图做的是让其他root管理员更难对我们的Pass实现文档运行命令,这里:。这仍然是可能的,但我希望将诸如pass rm$anyValueTheyInput和alias这样的命令转换为echo“你不能那样做”。当然,他们是管理员,可以更改别名,但这有望防止意外删除密码 这在BASH中可能吗?这些都将在RHEL或Centos盒上 如果在任何unixshell中都可以,那么在bash中就不可能使用带参数的整个命令别名 您可以做
这在BASH中可能吗?这些都将在RHEL或Centos盒上 如果在任何unixshell中都可以,那么在bash中就不可能使用带参数的整个命令别名 您可以做的是创建一个pass函数,该函数捕获所有不需要的参数包并转发所有其他参数包 要命令通过:
如果在任何unixshell中都有可能,那么在bash中不可能使用带参数的整个命令别名 您可以做的是创建一个pass函数,该函数捕获所有不需要的参数包并转发所有其他参数包 要命令通过:
pass()
{
if [ rm = "$1" ]; then
>&2 printf '%s\n' "You can't do that"
return 1
fi
#more checks... ?
#...
#forward the sanitized argument pack into the actual pass binary/script
command pass "$@"
}