使用动态路径从另一个bash脚本调用bash脚本

问题描述:

我有一个函数os,它决定了正在使用哪个操作系统。据此,我调用来自不同文件夹的脚本(例如,redhat/foo.sh,ubuntu/foo.sh等)。使用动态路径从另一个bash脚本调用bash脚本

现在,我只需引用脚本的路径来调用脚本,如下所示:ubuntu/foo.sh它工作正常。但是,当我用我的功能,像这样:

"$(os)"/foo.sh 

我得到这个错误:

./script.sh: line 28: "$(os)"/foo.sh: No such file or directory

它将该呼叫os作为文字。我不知道如何正确地协调外部脚本调用并使其工作。

我的功能最后没有使用return,它使用echo来输出值,我假设使用$()会捕获该值。

帮助如何正确连接我的函数来调用我的脚本将不胜感激。

编辑:我想在SLES 12 SP3

+0

这对我的作品。你用什么外壳? – choroba

呼叫直接$($(os)/foo.sh)


或存储在新变量var="$(os)/foo.sh",然后评估与eval $var

+0

我想避免这种情况,因为我有很多像这样的脚本调用。在这种情况下,如果可以避免,存储变量对我来说并不是最佳选择。 – Aborted

+0

检查更新的答案 – deimus

+0

'eval“$(os)/foo.sh”'? –