-1

在jsp页面运行unix代码有问题,我的jsp代码如下。

<%@page language="java" %>

<%@page import="java.util.*" %>

<html>

<head>

<%
    String unixCommand = "/bin/bash -lc \"/home/chandu/test/./check.sh xxxxxx\"";

     Runtime rt = Runtime.getRuntime();

     rt.exec(unixCommand);
    System.out.println("Print Test Line.");

%>

</head>

<body>

</body>

</html>

Unix代码如下

!/bin/bash -l

cd /home/chandu/test/ for i in cat nodelist do java -cp /home/chandu/test jcmd "$i" ZMIO:MSISDN=$1: > "$i".log done vlradd= grep MSC-ADDRESS *.log | awk '{print $4}' mss= grep $vlradd mss | awk '{print $1}' java -cp /home/ chandu/test jcmd "$mss" ZMVO:MSISDN=$1: | egrep "IMSI 的位置区域代码|上次使用的单元格 ID" | cut -d "/" -f2 > output lac= head -1 output | tail -1 cellid= head -2 output | tail -1 echo $lac $cellid 你在 /var/mail/root 中有新邮件

4

1 回答 1

0

你需要

  1. 从 Unix 进程中收集标准输出/错误并写入您的 JSP。
  2. 用于Process.waitFor()等待进程存在并收集返回码。否则你会有一个僵尸进程

您需要从Process返回的对象提供的流中读取rt.exec()以捕获输出。有关更多详细信息,请参阅此 SO 答案

于 2013-05-28T10:56:53.873 回答