【问题标题】:How to use fish aliases in bash scripts如何在 bash 脚本中使用鱼别名
【发布时间】:2019-11-04 17:01:18
【问题描述】:

我有一个 bash 脚本,我想在其中使用我在 config.fish 中定义的命令,如下所示:

alias setbg='feh --bg-fill'

但是,当我在 bash 脚本中使用该命令时,我得到:

setbg: command not found

如何使鱼的别名对 bash 脚本可见?

【问题讨论】:

  • 你能在你的 .bashrc 中找到鱼的别名吗?喜欢source alias.fish
  • 默认情况下,shell 脚本不扩展别名。
  • 不要使用别名,而是将其设为单独的 shell 脚本,以便您可以将其放入您的 $PATH
  • 对不起,我看错了,你说你有剧本,很抱歉造成混乱。
  • 如果是 bash,请将其添加到脚本的顶部:shopt -s expand_aliases

标签: bash shell scripting fish


【解决方案1】:

你没有。

Fish 别名仅适用于 fish 内部,并且由于 bash 和 fish 不兼容,因此不能保证您也可以source 它们。

然而,fish 实际上并没有别名alias 命令只是定义函数的一个包装器,与 bash fish 不同,它总是读取其配置。

所以你可以运行fish -c 'setbg'

或者,您可以创建一个别名文件,该文件在 bash 和 fish 中都可以使用。只要你坚持像简单的alias key='value' 这样的通用子集就可以了,但你不能使用任何不兼容的表达式,甚至像if

【讨论】:

  • 感谢您的帮助。 fish -c 做到了。
猜你喜欢
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
相关资源
最近更新 更多