我有一个名为os
的函数,用于确定正在使用的操作系统。据此,我调用来自不同文件夹的脚本(例如redhat / foo.sh,ubuntu / foo.sh等)
现在,我只是引用脚本的路径来调用脚本,如下所示:ubuntu/foo.sh
它运行正常。但是,当我像这样使用我的功能时:
"$(os)"/foo.sh
我收到此错误:
./ script.sh:line 28:" $(os)" /foo.sh:没有这样的文件或目录
它正在接听os
作为字面意思的电话。我不确定如何正确地连接到外部脚本调用并使其工作。
我的功能最后没有使用return
,它使用echo
输出值,我假设使用$()
会抓住它。
有关如何正确连接我的函数以调用我的脚本的帮助将不胜感激。
编辑:我在 SLES 12 SP3 中尝试了这一点。
答案 0 :(得分:0)
直接致电$($(os)/foo.sh)
或者存储在新变量var="$(os)/foo.sh"
中,然后使用eval $var