我们有两个bash脚本来启动一个应用程序.第一个(Start-App.sh)设置环境,第二个(startup.sh)来自我们试图不进行大量编辑的第三方.如果有人在第一个脚本之前运行第二个脚本,则应用程序无法正确显示.
有没有办法确保只能从Start-App.sh脚本调用startup.sh?
它们都在同一目录中,并通过Red Hat Linux上的bash运行.
解决方法:
您可以通过键入chmod -x startup.sh使startup.sh不可执行.这样,用户只需键入./startup.sh就无法运行它.
然后从Start-App.sh,通过显式调用shell来调用脚本:
sh ./startup.sh arg1 arg2 ...
要么
bash ./startup.sh arg1 arg2 ...
您可以通过检查startup.sh的第一行来检查它应该运行的shell,它应该如下所示:
#!/bin/bash