我正在尝试编写一个函数quickgit,该函数可以自动添加、提交和推送来自fortune的提交消息的附加好处。我有以下脚本:
function quickgit
git add --all
git commit -m (fortune)
git push
end它的工作原理除了提交消息是"(fortune)",而不是来自“财富”的消息。如何确保在我的fish函数中运行和扩展fortune?
发布于 2016-02-29 21:14:20
fish在获得引用的更好的点上有足够的问题,我将避免在脚本中完全使用它。(见https://github.com/fish-shell/fish-shell/issues/159)
我无法复制你的确切问题,但遇到了我自己的多线财富。(请参阅引用的bug)
尽管如此,对于您的用例,您可以使用以下方法完全避免:
function quickgit
git add --all
fortune | git commit -F -
git push
end发布于 2016-03-01 22:58:41
默认情况下,命令替换会将命令的输出拆分到换行符边界上。因此,多行财富将向git commit -m传递多个参数。这意味着只有第一行将由-m选项处理,第二行将被视为文件名。尝试将set -l IFS添加到您的函数中,以抑制这种分裂。另一种方法是捕获变量中的输出,然后插入var:
set -l fortune (/usr/games/fortune) git commit -m "$fortune"
但是请注意,这将用空格替换每个换行符。
https://stackoverflow.com/questions/35708992
复制相似问题