执行嵌套bash脚本时找不到命令

时间:2014-03-23 22:08:27

标签: linux bash shell ubuntu

我正在执行另一个bash脚本的bash脚本:

例如:

脚本名称“rotator”正在调用脚本名称“s3-get”,如下所示

!# /bin/bash
...
./s3-get {and params here}

所有命令如“cat”,“basename”等在这里正确运行

在“s3-get”脚本中,代码为:

!# /bin/bash
cat > /dev/null << EndOfLicense
...
readonly weAreKnownAs="$(basename $0)"
...
main "$@"

因此,如果我只是直接从shell执行s3-get脚本,它就会完美运行。当我尝试从“rotator”脚本执行它时,我收到错误“cat:command not found”。我可以通过改变“cat”和“/ bin / cat”来解决这个问题,因为我认为这是正确的,因为如上所述,脚本在独立执行时运行正常。如果我修复上面的“cat”命令,则引发的下一个错误是“basename:command not found”,然后“main:command not found”

我对shell编程很新,所以感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

在命令行中尝试$ echo 'export PATH=$PATH:/root/scripts/RotateVideos' >> ~/.bashrc && source ~/.bashrc,然后在脚本中使用s3-get调用它。或者使用cd /root/scripts/RotateVideos && bash s3-get