Bash-pass参数与接收参数的方式相同
我的Bash-pass参数与接收参数的方式相同,bash,Bash,我的hg(mercurial)命令有一个bash别名,如下所示: hg() { if [[ $1 == 'up' ]]; then if [[ $# == 2 ]]; then _update_bookmark $2 else up fi else /bin/hg $@ fi } 我的问题是最后一个else案例。我希望在hg()中收到的参数以完全相同的方式传递给/bin/hg。当我执行类似于hg commit-m“我的消息在这
hg
(mercurial)命令有一个bash别名,如下所示:
hg() {
if [[ $1 == 'up' ]]; then
if [[ $# == 2 ]]; then
_update_bookmark $2
else
up
fi
else
/bin/hg $@
fi
}
我的问题是最后一个
else
案例。我希望在hg()
中收到的参数以完全相同的方式传递给/bin/hg
。当我执行类似于hg commit-m“我的消息在这里”
的操作时,我的问题就会出现,它会作为类似于/bin/hg commit-m我的消息在这里
的内容进行传递。我尝试了$@
和$*
——不确定哪一个更适合这里,但似乎两者都不起作用。有什么建议吗?你需要写“$@”
(带双引号)来防止分词,同时仍然保持已经独立的参数独立。你需要写“$@”
(带双引号)来防止分词,同时仍然保持已经独立的参数独立。还要确保引用“$2”
还要确保您引用了“$2”