Bash shell没有以我期望的方式接受争论?

时间:2016-01-08 19:07:47

标签: git bash shell

我按原样运行以下脚本

push repo "message"

但是如果我的消息中有空格,则脚本会中断。显然是解释器,将任何空格视为新参数的指示。如何更改行为以便我可以使用空格编写完整的提交消息。

push() {
  local a=$1 b=$2
  if [ $# -eq 0 ]
  then
     echo "Enter git shortname for first argument"
     return
  fi

  if [ $# -eq 1 ]
  then
      b=$(timestamp)
  fi
  build
  git add -A .
  git commit -m $b
  git push $a
  echo "push() completed."
}

1 个答案:

答案 0 :(得分:2)

在您的函数中使用正确的引号:

push() {
  local a="$1" b="$2"
  if [ $# -eq 0 ]
  then
     echo "Enter git shortname for first argument"
     return
  fi

  if [ $# -eq 1 ]
  then
      b=$(timestamp)
  fi
  build
  git add -A .
  git commit -m "$b"
  git push "$a"
  echo "push() completed."
}