Bash Alias 中的 if-then-else

swi*_*h87 7 bash git alias

我正在尝试为其创建别名,mv以便它在普通文件夹中执行其正常行为,并由git mv内部 git 存储库替换。我尝试了很多方法。if 语句有效,只有命令git mv无法正确运行。

alias mv='"$(
if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ]; 
    echo mv;  
else 
    echo "git mv"; 
fi)"'
Run Code Online (Sandbox Code Playgroud)

小智 10

我会为此使用一个函数,如下所示:

gitmv()
{
    # If in a git repo - call git mv. otherwise- call mv
    if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ]; 
    then
        mv "$@"  
    else 
        git mv "$@" 
    fi
}
Run Code Online (Sandbox Code Playgroud)

编辑:

alias mv=gitmv