从函数内部调用source



我目前正在从zsh移动到fish。我的大多数别名等都很容易移植,但我遇到了以下一个问题:

alias idf.py='unalias idf.py; source $IDF_PATH/export.sh; idf.py'

我知道在fish中别名只是函数的语法糖,所以我开始写下面的函数:

function "idf.py"
source $IDF_PATH/export.fish
functions --erase idf.py
idf.py $argv
end

出口。Fish脚本来自esp-idf,并且开始抱怨需要源代码。之后,函数被正确删除,但无法找到idf.py:

his script should be sourced, not executed:
realpath: /home/robert/Programs/esp-idf/export.fish/..: Not a directory
.
fish: Unknown command: idf.py
fish: 
idf.py $argv
^
in function 'idf.py'

你知道我如何从这个函数内部源到全局作用域吗?

查看您链接到的项目的提交历史——您链接的ESP-IDF脚本是最新版本,但是您收到的错误来自脚本早期版本的错误,该脚本已被修复。

脚本试图通过测试status current-command来检测它是否被source命令调用,但由于您是从函数idf.py中调用它,因此返回的名称是,而不是source

这是一个错误,大约两年前通过简单地删除源代码检查就修复了。

升级到最新的ESP-IDF版本应该可以解决这个问题。

相关内容

  • 没有找到相关文章

最新更新