在不同的shell

时间:2018-02-22 19:58:01

标签: bash shell zsh

我通常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的任何建议..?

1 个答案:

答案 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 "$@"