java执行带参数的shell脚本并返回值 100

.sh文件内容:#!/bin/shif["$2"="381"];thenawk-Fabc"/ALLIP;/,/END$/"/var/ftp/logUrl/MSC/1/$1... .sh文件内容:
#!/bin/sh
if [ "$2" = "381" ];then
awk -Fabc "/ALLIP;/,/END$/" /var/ftp/logUrl/MSC/1/$1.log | grep -E -a1 "A1|A2|A3|O1|O2" | grep -E -v "^-|/|^$"
fi
if [ "$2" = "381a" ];then
awk -Fabc "/ALLIP;/,/END$/" /var/ftp/logUrl/MSC/1/$1.log | awk -vfff="$3" 'BEGIN{a=0;b=0;}{all[NR]=$0;if($0==fff){a=1;}if($0~/A1|A2|A3|O1|O2|END$/){if(a==1&&b!=0){for(i=b;i<NR;i++){print all[i]}}b=NR;a=0;}}'
fi
直接访问 是有输出的
/var/ftp/batFile/formula.sh "CDBSC5" "681a" "RADIO TRANSMISSION TRANSCODER AND RATE ADAPTOR FAULT"

结果正确
但是java中访问的时候却没有返回值,代码如下
ec.dirOpt("/var/ftp/batFile/formula.bat \"NCMSS2\" \"381a\" \"CCITT7 EVENT REPORTING THRESHOLD REACHED\"");

public List<String> dirOpt(String addrStr){

//System.out.println("-----------dirOpt()-------------");
Process process;

try {
//执行命令
process = Runtime.getRuntime().exec(addrStr);
//取得命令结果的输出流
InputStream fis = process.getInputStream();

//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
List<String> lineStr = new ArrayList<String>();;
//逐行读取输出到控制台
while((line = br.readLine())!=null){
if(line.length()>0){
lineStr.add(line);
}
System.out.println(line);
}
return lineStr;
} catch (Exception e) {
e.printStackTrace();
return null;
}
展开
 我来答
artintin
2013-11-21 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7508
采纳率:80%
帮助的人:2867万
展开全部
文件名确实不对
.sh文件才是linux下的批处理文件,它不认bat的
另外要保证.sh中调用的其他函数在当前目录下能正常运行
追问
谢谢你,这里是我写错了,调用的时候用bat是我在win下测试的时候写的,sh的是在linux下也不可以,bat在win下也不行。不能运行的问题不在这里。
追答
.sh若能在终端运行,表示其程序没错,而在其他目录下调用可能出现运行不下去,一般是因为运行java的用户的权限问问或者是路径问题,有些程序需要调用自己的数据,但不在当前目录下了(运行java时缺省目录可能是java的bin目录),你需要看批处理调了哪些程序,一个个实验。若可能将程序和相关文件均放到同一目录下。
匿名用户
2013-11-19
展开全部
调用的文件名,可不相同
直接调用的是/var/ftp/batFile/formula.sh
JAVA调用的是/var/ftp/batFile/formula.bat

另外,观察过脚本内的环境变量吗
追问
bat不是dos下的批处理文件么?这里怎么会变呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式