【发布时间】:2016-04-13 09:37:39
【问题描述】:
我有一堆 shell 脚本,第一个是安装流行的 Fish shell 的。完成此步骤后,我将functions/ 目录复制到适当的位置。然后我想使用spin 函数来调用每个shell 脚本并在每个脚本执行时显示一个微调器。但是,在我通过 Fish 的初始安装和配置后,我无法使用这些功能,即 spin <command> 导致 command not found。
注意这发生在一个临时的 docker 容器中进行测试。
对此的任何指示或帮助,将不胜感激。
【问题讨论】:
-
不熟悉
fish,但通常情况下,shell 函数在非交互式 shell 中不可用。一个简单直接的解决方法是将实现从函数更改为常规外部命令。 -
@tripleee 函数在非交互式 shell 中可用,但定义它们的文件可能不会被这些 shell 加载。另一方面,别名在非交互式 shell 中通常不可用。
-
对于鱼来说,这实际上应该有效,因为它总是获取相同的文件。除非您使用
if status --is-interactive明确保护它。是你的$fish_function_path中的函数目录吗? -
为了调试,它是并且没有任何防护措施。这是一种不寻常的情况。
标签: linux shell docker debian fish