$cmd" -6ren">
gpt4 book ai didi

bash - ZSH:在脚本文件中执行函数

转载 作者:行者123 更新时间:2023-12-03 22:01:52 27 4
gpt4 key购买 nike

我有一个 ~/scripts/git-workflow.sh看起来像这样的文件:

#!/bin/zsh

gp() {
local cmd="git pull"
echo "=> $cmd"
$cmd
}

它基本上是一个更好的别名,它会在我使用别名时打印出命令,这样我就不会随着时间的推移忘记实际的命令。

在我的 .zshrc文件,我 source ~/scripts/git-workflow.sh .

在我的 zsh 提示符下,当我执行 $ gp 时它似乎运行了该功能,但失败了。
$ gp
=> git pull
gp:5: command not found: git pull

但是,如果我执行 $ git pull直接在命令行上,它运行得很好。
$ git pull
Already up to date.

当我使用 bash 时,这工作正常,但我最近切换到 zsh (感谢 Apple 使用它作为默认设置)并且在执行我的脚本时遇到了问题。

是否需要将我的函数放入某些特殊格式,或者我需要添加到 zsh 中以使其工作?

最佳答案

zsh默认情况下不对参数扩展执行分词,所以 gitpull在所需的命令中不是两个单独的词。虽然您可以在特定参数扩展上启用它,但更好的方法是仅使用数组。

gp () {
local cmd=(git pull)
echo "=> ${cmd[*]}"
"${cmd[@]}"
}

关于bash - ZSH:在脚本文件中执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59271173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com