java执行shell脚本并输出执行情况

1.脚本test.sh,置于/Users/hdwang目录下

#!/bin/sh

cd /Users/hdwang
echo ls:`ls`

for((i=1;i<=10;i++));
do
echo $(expr $i \* 3 + 1);
sleep 1s
done

echo jps:`jps -l`

2.java执行test.sh

public class ExecShell {

    public static void main(String[] args) {

        try {
            Process pro = Runtime.getRuntime().exec("/Users/hdwang/test.sh");
            InputStream in = pro.getInputStream();
            BufferedReader read = new BufferedReader(new InputStreamReader(in));
            String line = null;
            while((line = read.readLine())!=null){
                System.out.println(line);
            }

            pro.waitFor();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3.执行结果

ls:App Applications Desktop Documents Downloads Library Movies Music Pictures Projects Public a.html c curl.txt java_error_in_idea.hprof mavenRepo nginx配置 res sessiontmp test.sh 记录.txt 机器配置环境等 机器配置环境等.zip
4
7
10
13
16
19
22
25
28
31
jps:11617 sun.tools.jps.Jps 11592 org.jetbrains.jps.cmdline.Launcher 10633 org.jetbrains.jps.cmdline.Launcher 11593 com.hdwang.ExecShell 10539 com.hzxc.chess.server.Booter 555

原文地址:https://www.cnblogs.com/hdwang/p/9047471.html

时间: 2024-10-11 23:39:59

java执行shell脚本并输出执行情况的相关文章

解决使用crontab执行shell脚本时出现乱码情况

自己编写了一个shell脚本来维护测试环境,使用了crontab调度让其定时执行,结果遇到了乱码问题,脚本在shell环境下直接运行没有问 题. 结论是crontab执行时不会携带用户的环境变量,缺失一些系统变量,碰到中文就乱码.需要在脚本里额外添加缺失的环境变量,针对中文问题,需要声明 LANG参数 在脚本开头增加:LANG="en_US.UTF-8"export LANG 设置的编码要和系统设置的一致,具体可以到/etc/sysconfig/i18n 查看对应的环境变量.

Java执行shell脚本关闭远程数据库

本实例为用Java执行shell脚本启动或关闭远程Mysql数据库,需求原因:游戏服务器合服后,为了节省内存消耗,需要关闭合服后的服务器不必要的数据库(一台服务器主机存在多个MySql数据库),以提高服务器性能,但有时需要查询历史游戏玩家信息,又需要开启数据库,为了节省运维人员的人力和时间,游戏后台就提供非运维人员都可操作开关数据库的操作. 功能实现步骤: 第一:服务器后台提供参数,发送异步请求,请求方法如下 <script type="text/javascript">

Java执行Shell脚本“No such file or directory” (win-&gt;Linux)异常的可能原因

转自:http://blog.csdn.net/zlpdaisy/article/details/6134314 用Runtime.getRuntime().exec()方法执行Linux的一个Shell脚本时,报 Cannot run program "./script/abc.sh": java.io.IOException: error=2, No such file or directory] java.io.IOException: Cannot run program &q

JAVA远程执行Shell脚本类

1.java远程执行shell脚本类 1 package com.test.common.utility; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.UnsupportedEncodingException; 6 import java.nio.charset.Charset; 7 8 import org.apache.commons.io.IOUtils; 9 import o

java连接ssh执行shell脚本

在liunx上写了一个shell脚本,想通过java去调用这个shell脚本,不知道怎么去调用,在网上说使用process这个进程方式,但是我执行机和我shell脚本都不在同一台电脑,老大说java中可以连接ssh,执行shell脚本,以下代码来自他们以前的项目 public class SSH { static Connection conn = null; static String hostname = "10.40.6.232"; static String username

shell脚本介绍,shell脚本结构和执行方式,date命令的用法,shell脚本中的变量简介

笔记内容: 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 笔记日期:2017-11-21 20.1 shell脚本介绍 Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令

php利用root权限执行shell脚本 (转)

转一篇博客,之前搞这个东西搞了好久,结果今天晚上看到了一篇救命博客,瞬间开心了...转载转载 利用sudo来赋予Apache的用户root的执行权限,下面记录一下: 利用PHP利用root权限执行shell脚本必须进行以下几个步骤:(所有步骤都是我亲自实验,若有不妥可指出,谢谢!) 1. 确定一下你的Apache的执行用户是谁.注:不一定就是nobody,我自行安装的httpd,我的Apache的用户就是daemon 2. 利用visudo为你的Apache执行用户赋予root执行权限,当然还有

运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)

运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化> <运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)> <运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析> <运维经验分享(五)-- 改进的java进程管

Linux下如何执行Shell脚本

Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bash里面指明了shell类型的,比如#!/bin/bash指明是bash,#!/bin/sh则是sh):然后输入命令(其中bash为shell的名称,myshell.sh则为你要执行的代码): bash myshell.sh 2.直接执行脚本: 不过首先的加上可执行权限(也许要root权限,4情况而定