gpt4 book ai didi

fish - 将 fish 函数设为私有(private)

转载 作者:行者123 更新时间:2023-12-04 18:41:26 26 4
gpt4 key购买 nike

我定义了几个仅在一个特定的 fish 脚本中使用的辅助函数。我将它们放在包装函数中,但您仍然可以通过自动完成找到它们。

如何将它们从自动完成中隐藏并将它们的范围限制为 private ?

function outer
function inner_func
echo "I still find this function via automplete"
end
end

最佳答案

fish 有私有(private)函数,但是 it is possible this feature will be available in future versions .同时,尝试使用以下技术、命名约定或两者兼而有之。
functions -e function_name
非常接近您的需要。您可以使用 functions -e function_name在 block 结束之前将其从全局范围中删除。

function outer
function inner_func
echo "I still find this function via automplete."
echo "Not anymore!!"
functions -e inner_func
end
# Let's test this!
inner_func
end


$ outer
I still find this function via automplete.
Not anymore!!
$ inner_func
fish: Unknown command 'inner_func'

命名约定
  • _my_module_func_name

  • 这不会从全局范围中删除该函数,但避免无意中覆盖现有函数是一种普遍的良好做法。

    笔记

    在主函数文件中声明的函数(或在其他函数中的函数,如 inner_func )仅在其父函数至少被调用一次后才可用(这是 fish 延迟函数自动加载),并且仅在该特定 shell 的持续时间内存在 session 。

    关于fish - 将 fish 函数设为私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088699/

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