Shell脚本使用

问题:

A脚本(/):
	./b/run.sh
	./c/run.sh
B脚本(/b/):
	java -jar ./b.jar &
C脚本(/c/):
	java -jar ./c.jar &
	
执行A脚本出现错误
	找不到b.jar、c.jar

如何让B、C脚本不继承A脚本的环境变量

找不到jar的原因:

    因为是A脚本直接调用子脚本,导致子脚本的运行环境为A脚本的环境,所以在B脚本和C脚本中“./”的实际路径为“/”而非“/b/”或“/c/”。

解决方案:

1、A脚步中使用“cd”命令切换环境
   cd ./b/
   ./run.sh
   cd ../c/
   ./run.sh
注:此方法可以不用动子脚本的任何内容,也可以让子脚本的依赖性减小到最小

2、使用参数和子脚本函数化
   a、子脚本中将需要执行的内容进行函数化,并可传入路径参数;
   b、子脚本中提供全局变量path = './'
   c、在函数中判断是否有有传入参数,若没有传入参数就使用子脚本的全局变量path
注:此方法更符合编程逻辑思维,且扩展性好,但复杂化了脚本程序和增大了依赖性

    

 

转载于:https://my.oschina.net/clyy/blog/812016

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值