小编jer*_*ile的帖子

Bash 隐藏命令 - 与命令同名的函数

我有一个功能.bashrc可以自动 sudo 打开我不能写的文件:

vim() {
    if [ -w "$1" ]; then
        \vim "$1"
    else
        sudo env HOME="$HOME" \vim -u ~/.vimrc "$1"
    fi
}
Run Code Online (Sandbox Code Playgroud)

当文件需要 sudo 时,它工作正常。如果没有,它会递归调用此函数并使用 100% 的 1 个 CPU,直到 I CC。

从这个答案我看到有几个选项,所有这些我都尝试过。一个确实有效:

'vim' "$1" #fails
\vim "$1" #fails
command vim "$1" #Works!
Run Code Online (Sandbox Code Playgroud)

为什么其他选项不能像我期望的那样工作?

(我知道这是重复的,但是很难用当前的问题标题在 SO/SE 上找到我的答案,所以我想发布一个问题,标题是我和其他人可以通过谷歌搜索找到的)

bash alias command

7
推荐指数
1
解决办法
3760
查看次数

标签 统计

alias ×1

bash ×1

command ×1