我想为带有标志的特定命令创建别名
arc diff --preview
我创建了以下 bash 函数
arc(){
if [ "$1" = "diff" ] && [ "$2" = "--preview" ] ; then
echo -n "Message example? (y/n)? "
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
arc $@
else
echo No
fi
else
echo "$2"
fi
}
不幸的是,在说"is"或输入不同的命令后(例如 arc pull
)
我正在输入相同的提示符“消息示例?(y/n )?"
因为我再次调用 arc
。
我该如何避免?
最佳答案
您再次调用同一个函数。如果 arc 是外部命令,则执行 command arc $@
。这将避免调用您定义的函数,并调用在 PATH 中找到的外部可执行文件。
arc(){
if [ "$1" = "diff" ] && [ "$2" = "--preview" ] ; then
echo -n "Message example? (y/n)? "
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
command arc "$@"
else
echo No
fi
else
echo "$2"
fi
}
关于linux - 在 bash 脚本中调用别名命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289202/