我正在通过 shell 脚本运行一个命令,所以无论 shell 脚本提供什么数据,我都需要用 java 代码打印,为了实现这一点,我通过 Java 在 shell 脚本下执行。但是无论从 shell 脚本获取的$data都是用 java 打印的。谁能帮我?
下面是我的 adb.sh
#!/bin/sh
REPO_DIR=/home/jagadeesh/android-sdk-linux/platform-tools/
cd ${REPO_DIR}
data= adb shell logcat | grep testing_aws
echo $data
下面是我的 java 文件:这里我正在执行 shell 脚本
String[] cmdScript = new String[]{"/bin/bash", "-C", "/home/jagadeesh/Desktop/automation/Adb_logs/adb.sh"};
StringBuilder output2 = new StringBuilder();
try {
Process procScript = Runtime.getRuntime().exec(cmdScript);
procScript.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(procScript.getInputStream()));
// System.out.println(reader);
String line = "";
while ((line = reader.readLine())!= null) {
output2.append(line + "\n");
System.out.println(output2);
}
} catch (Exception e) {
e.printStackTrace();
}
在abd.sh
变化data= adb shell logcat | grep testing_aws
到
data=`adb shell logcat | grep testing_aws`
请找到对我有用的代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Script {
public static void main(String[] args) {
// TODO Auto-generated method stub
String cmdScript = "/home/abd.sh";
StringBuilder output2 = new StringBuilder();
try {
Process procScript = Runtime.getRuntime().exec(cmdScript);
procScript.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(procScript.getInputStream()));
// System.out.println(reader);
String line = "";
while ((line = reader.readLine())!= null) {
output2.append(line + "\n");
System.out.println(output2);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
文件
#!/bin/sh
data=`cat /home/new.ldif|grep dn`
echo $data
输出
bash-3.00$ java Script
dn: dc=opensso,dc=java,dc=net
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句