3、shell脚本中有关联脚本,注意路径
就是shell脚本中还要执行其他脚本,这时候就是注意一个路径的问题,这个问题也是我找了好长时间的一个问题。
Process p=Runtime.getRuntime().exec(“/etc/a.sh”)
在Test.Java类调用了etc目录下的a.sh脚本, a.sh脚本中执行etc目录下的b.sh脚本,原来我在a.sh脚本中写的是./b.sh。其实这样linux是找不到b.sh的,因为我们执行是在
Test.class目录下调用的/etc/a.sh 所以当a.sh中执行./b.sh的时候他会在Test.class目录下寻找,所以找不到,所以a.sh中要写成/etc/b.sh
4、java连续调用多个脚本
String[] cmd = { "/bin/sh", "-c", "rm -rf /installation/upgrade/ ; mkdir /installation/upgrade/" };
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
就是这种数组的方式。
5、java执行.sh脚本文件的时候直接写目录就行,例如这样:Runtime.getRuntime().exec(“/etc/a.sh”)
java 直接执行语句的时候需要加上"/bin/sh" 例如这样:
String name="/bin/sh cd /installation/upgrade/ip89_install_packet";
Process p = Runtime.getRuntime().exec(name);