.zshrc 中的简单多行命令函数别名

Simple Multi-Line Command Function alias in .zshrc

我正在尝试编写一个命令,提交给 github 的原始主机,并在完成后关闭计算机...这是我所拥有的,它指出了一个很多语法错误,因为我找不到如何使用多行别名命令...非常感谢,下面是我的功能,如果这是一个基本错误,我深表歉意,因为我对 ZSH shell.

# Push to origin master and shut down
alias gitshut=
'
git add .;
git commit -m "Latest Commit";
git push -f origin master;
'

再次感谢,感谢您的帮助

您的别名没有解决关闭部分,但您可以重写它:

alias gitshut='git add .;git commit -m "Latest Commit";git push -f origin master;'

或者可能是:

alias gitshut='\
   git add .;\
   git commit -m "Latest Commit";\
   git push -f origin master;'

使用 function as in here 可能更容易。

您的命令首先定义了一个名为 gitshut 的空别名。这条线是这样的

alias gitshut=

正在做。在此之后,您向 zsh 运行 询问了一个带有有趣名称 \ngit add .;\ngit commit -m "Latest Commit";\ngit push -f origin master;\n 的命令(其中 \n 代表换行符)。由于这样的文件不存在,您会收到一条错误消息(可能是 zsh: command not found ....)。

你可以写成

alias='git add .
  git commit -m "Latest Commit"
  git push -f origin master'

但老实说,将其作为一个函数来执行会给您带来更大的灵活性(例如引入一个可选参数进入提交消息)。

根本不用为别名烦恼。定义一个函数。

gitshut () {
  git add .
  git commit -m "Latest Commit"
  git push -f origin master
}

除了减少引用问题之外,这还允许您将更好的提交消息作为参数传递,例如,

gitshut () {
  msg=${1:-Latest Commit}
  git add .
  git commit -m "$msg"
  git push -f origin master
}

现在您可以使用 gitshut 来使用默认的 Latest Commit 消息,或者 gitshut "Fixed overflow bug" 提供一些实际描述正在提交的内容的内容。