Bash 如何将命令别名为空格?(或shell函数)

Bash 如何将命令别名为空格?(或shell函数),bash,function,shell,alias,Bash,Function,Shell,Alias,我看过的所有文档似乎都表明,在别名和shell函数中,名称不能包含空格 我试图做的是让其他root管理员更难对我们的Pass实现文档运行命令,这里:。这仍然是可能的,但我希望将诸如pass rm$anyValueTheyInput和alias这样的命令转换为echo“你不能那样做”。当然,他们是管理员,可以更改别名,但这有望防止意外删除密码 这在BASH中可能吗?这些都将在RHEL或Centos盒上 如果在任何unixshell中都可以,那么在bash中就不可能使用带参数的整个命令别名 您可以做

我看过的所有文档似乎都表明,在别名和shell函数中,名称不能包含空格

我试图做的是让其他root管理员更难对我们的Pass实现文档运行命令,这里:。这仍然是可能的,但我希望将诸如pass rm$anyValueTheyInput和alias这样的命令转换为echo“你不能那样做”。当然,他们是管理员,可以更改别名,但这有望防止意外删除密码


这在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 "$@" 
}