我正在执行另一个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编程很新,所以感谢任何帮助。
谢谢
答案 0 :(得分:0)
在命令行中尝试$ echo 'export PATH=$PATH:/root/scripts/RotateVideos' >> ~/.bashrc && source ~/.bashrc
,然后在脚本中使用s3-get
调用它。或者使用cd /root/scripts/RotateVideos && bash s3-get
。