当前位置:首页 » 编程语言 » shell获取java返回值

shell获取java返回值

发布时间: 2023-12-15 12:17:48

㈠ shell脚本java程序,获取JAVA程序返回值并echo输出

先运行java程序,然后用echo $?获取程序的运行结果,如果是字符串,可以使用
result=$(java -jar xxx.jar)来获取,当然这只是示例,$()中的命令使可以随便修改的

㈡ java 怎么取外部程序运行后的返回值

JAVA 中 process 类的使用
Process是一个抽象类 封装了一个进程
创建 process
Process p = Runtime.getRuntime().exec(cmd); cmd 是字符串类型 也可以是字符串类型的数组 内容就是 命令行
Process p =ProcessBuilder.start();
Process 类提供了子进程的输入流,子进程的输出流子进程的输入流,等待进程完成,检查进程的退出状态以及销毁进程的方法;
创建的子进程没有自己的控制台或终端,其所有的io操作都是通过(输入流、输出流、错误流)重定向到父进程中。
destroy()
杀掉子进程。
exitValue()
返回子进程的出口值。
InputStream getErrorStream()
获得子进程的错误流。
InputStream getInputStream()
获得子进程的输入流。
OutputStream getOutputStream()
获得子进程的输出流。
waitFor()
导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。
-------分割线,以上来自网络-------
其中的exitValue()函数返回值就是你需要的东西。按照你的示例,return 12345,取得的值不一定等于12345,因为每个不同的shell对于程序退出的返回值是有自己的定义的,不一定是把程序return的值直接返回。可以查看各类shell的编程帮助。

㈢ 急,java中telnet访问远程电脑,然后执行cmd命令,再获取返回值。

需要个jar包:commons-net-3.3-bin.zip

下载地址:http://commons.apache.org/proper/commons-net/download_net.cgi


你找的代码我修改过了,复制直接使用。linux系统需要先开启telnet服务

//执行的命令
System.out.println(she.sendCommand("ll"));

这个输入linux 命令

importjava.io.InputStream;
importjava.io.PrintStream;

importorg.apache.commons.net.telnet.TelnetClient;

publicclassShell{
privateTelnetClienttelnet=newTelnetClient();

privateInputStreamin;

privatePrintStreamout;

privatecharprompt='$';//普通用户结束

publicShell(Stringip,intport,Stringuser,Stringpassword){
try{
telnet.connect(ip,port);
in=telnet.getInputStream();
out=newPrintStream(telnet.getOutputStream());
//根据root用户设置结束符
this.prompt=user.equals("root")?'#':'>';
login(user,password);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*登录
*
*@paramuser
*@parampassword
*/
publicvoidlogin(Stringuser,Stringpassword){
//read()Until("login:");
readUntil("login:");
write(user);
readUntil("Password:");
write(password);
readUntil(prompt+"");
}

/**
*读取分析结果
*
*@parampattern
*@return
*/
publicStringreadUntil(Stringpattern){
try{
charlastChar=pattern.charAt(pattern.length()-1);
StringBuffersb=newStringBuffer();
charch=(char)in.read();
while(true){
sb.append(ch);
if(ch==lastChar){
if(sb.toString().endsWith(pattern)){
returnsb.toString();
}
}
ch=(char)in.read();
System.out.print(ch);
}
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

/**
*写操作
*
*@paramvalue
*/
publicvoidwrite(Stringvalue){
try{
out.println(value);
out.flush();
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*向目标发送命令字符串
*
*@paramcommand
*@return
*/
publicStringsendCommand(Stringcommand){
try{
write(command);
returnreadUntil(prompt+"");
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

/**
*关闭连接
*/
publicvoiddisconnect(){
try{
telnet.disconnect();
}catch(Exceptione){
e.printStackTrace();
}
}

publicstaticvoidmain(String[]args){
// TelnetClienttelnet=newTelnetClient();
try{
Shellshe=newShell("192.168.1.10",23,"root","123456");
System.out.println(she);
//执行的命令
System.out.println(she.sendCommand("ll"));
she.disconnect();

}catch(Exceptione){
//TODO:handleexception
}

}
}

㈣ shell里判断返回值的问题

你不要输出结果,那就将结果重定向至 /dev/null 即可,具体代码就是:

你的命令后面加上 >/dev/null 就不会有输出结果了。举个简单的例子:

ping -c 192.168.1.1 这个命令,用于判断到这个IP是否畅通,如果你在后面不加上重定向。

那么每次都会输出结果,也就是你现在的情况。所以下面代码我就在ping的后面加上了重定向

代码,让结果屏蔽,仅获取返回值$?,那屏幕上就不会显示ping的结果了,只会显示下面判断结果,懂了么?

#!/bin/bash
ping-c2192.168.1.1>/dev/null
if[$?-eq0];then
echo192.168.1.1isokey!
else
echo192.168.1.1isfailed!
fi

㈤ 每天三分钟搞定linux shell脚本26 函数返回值

函数可以产生返回值,有3个方法。
1)默认情况下是 最后一条语句对应的退出状态码
2) return 一个整数值
3)使用 echo语句 指定输出
针对 方法1 建立如下脚本:

运行后输出结果为:

针对 方法2 建立脚本:

运行后结果为:

针对 方法3 建立脚本

运行后输出结果为:

方法3使用echo语句来返回结果,而且 并没有把这个输出到stdout 中。

函数返回数组与参数传递数组一样,使用echo语句。举例如下:

运行后输出结果为:

㈥ 怎么设置awk的返回值然后让shell获取

cnbubble@~/test:$catrr.sh
#!/bin/bash
functionergodic(){
forfilein`ls$1`
do
if[-d"$1/"$file]
then
echo"$1/$file"
ergodic"$1/$file"
#else
#echo$file
fi
done
}
ergodic"/home/cnbubble"
cnbubble@~/test:$a=`awk'BEGIN{sum=0}{sum=sum+NF}END{printsum}'rr.sh`
cnbubble@~/test:$echo$a
30

上面例子中统计了rr.sh文件每行的字段(默认空格分割)数量,进行了累加求和。最后赋值给了Shell中的变量a

一般shell使用awk的结果通常是 将awk语句用 ` …… `括起来(键盘上Tab上面的那个键)

其他例子:

ls `awk……`

grep `awk……` fileName

㈦ java调用shell脚本,并得到shell脚本的返回值

文件名确实不对
.sh文件才是linux下的批处理文件,它不认bat的
另外要保证.sh中调用的其他函数在当前目录下能正常运行

热点内容
联想安卓升级包在哪里下载 发布:2025-01-24 09:15:20 浏览:591
认票的算法 发布:2025-01-24 09:00:45 浏览:927
android调用打印机 发布:2025-01-24 09:00:32 浏览:808
网易版我的世界服务器如何 发布:2025-01-24 08:55:47 浏览:968
编译器鼻祖 发布:2025-01-24 08:54:11 浏览:844
如何用安卓编译项目 发布:2025-01-24 08:30:46 浏览:863
计算机同时输出和存储设备的区别 发布:2025-01-24 08:29:21 浏览:581
食物语上传 发布:2025-01-24 07:58:44 浏览:754
编程相关书籍 发布:2025-01-24 07:55:45 浏览:430
英雄联盟手游需要哪些配置 发布:2025-01-24 07:42:03 浏览:985