在 Bash 中捕获字符串作为参数

Catching String as Argument in Bash

我有一个用于 Git

的脚本
function push() {
  git add --all
  git commit -m 
  git push
}

我通过

调用
p "Commit message"

我的问题是,如何将 p 之后的所有内容作为一个参数传递,本质上是将 p 之后的所有内容作为提交消息传递 - 重要的是 - 我想知道是否有办法这样做不带引号

如果这是您唯一的参数,您可以在脚本中使用 $* 来获取所有参数。另外,引用他们的话:

function push() {
    git add --all
    git commit -m "$*"
    git push
 }

您也可以使用 "",为更多参数留出空间,但在这种情况下,您 必须 在调用函数时使用引号(例如,$ push "Some message" 而不仅仅是 $ push Some message)。它更正确,但出于此功能的目的 - 只是为了节省时间 - 它可能更有用。

反正我觉得有这样一个功能不是什么好主意。 git add 是审查您的提交、决定在其中包含什么以及为其他提交留下什么以及构建一个非常好的提交消息的好时机。另外,您通常希望延迟 push 直到您有几次提交。

我建议您使用 tig 之类的工具来轻松选择要展示的内容等。