我通常zsh
。我想在bash中执行一个函数并返回原来的shell。我可以手动执行此操作,但我想自动执行此操作。我怎么能这样做?
例如,我在zsh上。
我想执行func
,这是function()
文件中的bigscript.sh
。我在bigscript.sh
.zshrc
采购!#/bin/bash
文件
我尝试在bigscript.sh
文件中添加shebang function
,但这并没有改变shell。
我尝试了另一种方法,将function.sh
放在一个独立的.sh
文件中,并添加了shebang。有效。但是,我不想将文件分成较小的'Dy, FMDD Mon YY HH24:MI:SS TZ'
文件。
那么,有关更改单个函数的shell的任何建议..?
答案 0 :(得分:1)
如果函数是用bash编写的,那么你通常不能从Zsh执行它,因为bash和Zsh是不同的语言。当然因为有一些相似之处,所以可以在Zsh上编写在bash上工作相同的函数,我不会依赖它。即使你的功能恰好是一个兼容的"目前,如果有人稍后修改了这个功能,他可能不会意识到这个功能将在bash上下文之外使用并以某种方式改变它以使其不运行或 - 甚至更糟糕 - 在Zsh下表现不同。
所以唯一的办法就是编写一个接口bash脚本,它输出定义了这个函数的文件,然后执行它 - 比如
#!/bin/bash
# Interface script to call bash function foo from other languages
. file-which-defines-function-foo
foo "$@"