我的〜/ .bashrc
中有以下bash函数function gitlab {
MSG='first commit'
CMD="git commit -m '${MSG}'"
echo $CMD
$CMD
}
结果如下
$ gitlab
git commit -m 'first commit'
error: pathspec 'commit'' did not match any file(s) known to git.
有什么问题?
答案 0 :(得分:8)
答案 1 :(得分:1)
绝对阅读Ignacio链接到的BashFAQ / 050。
你可以试试这个:
function gitlab {
local PS4='Running: '
local msg='first commit'
bash -xc "git commit -m '$msg'"
}
答案 2 :(得分:0)
尝试将提交消息放在双引号中,因为单引号和双引号对bash表示不同的含义。
function gitlab {
MSG="first commit"
CMD=`git commit -m \"${MSG}\"`
echo $CMD
$CMD
}
答案 3 :(得分:0)
我想您应该使用\"
代替'
,所以它应该是这样的:
CMD="git commit -m \"${MSG}\""