首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从sh( bash )脚本运行bash脚本?

如何从sh( bash )脚本运行bash脚本?
EN

Unix & Linux用户
提问于 2016-07-18 16:01:47
回答 2查看 7.3K关注 0票数 1

我有一个sh (shebang #!/bin/sh)脚本(sh.sh),它调用bash (shebang #!/bin/bash)子脚本:

代码语言:javascript
复制
. "some-path/bash.sh"

在bash脚本中,我声明了一个关联数组:declare -A properties,从而得到了错误declare: not found

很明显,为什么没有找到declare,因为父脚本是sh脚本,而不是bash。

有强制bash语法的方法吗?

另一种方法是打开一个新的shell,但这是有问题的,因为下标的目的是定义要在父脚本中使用的变量。子shell不应该干扰父变量。

家长(sh.sh):

代码语言:javascript
复制
#!/bin/sh
. "some-path/bash.sh"

儿童(bash.sh):

代码语言:javascript
复制
#!/bin/bash
declare -A properties

我试过的用法:

代码语言:javascript
复制
./sh.sh
EN

回答 2

Unix & Linux用户

发布于 2016-07-18 16:05:21

不要源脚本(source script. script)。

相反,只需正常运行它,script

票数 3
EN

Unix & Linux用户

发布于 2016-07-18 16:04:52

我没有使用bash:./sh.sh运行父脚本,而是使用bash:bash sh.sh运行它。起作用了。

我有一个隐藏的假设: sh是bash的子集。不确定是否正确,但成功了。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/296654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档