
linux创建shell脚本?linux简单的shell编程
- 科技
- 2023-08-14
- 5

大家好,感谢邀请,今天来为大家分享一下linux创建shell脚本的问题,以及和linux简单的shell编程的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来...
大家好,感谢邀请,今天来为大家分享一下linux创建shell脚本的问题,以及和linux简单的shell编程的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
如何编写linux控制台程序
问题太模糊,你是要编写一个Linuxshell脚本吗?vi(你的名字).sh就可以了vi编辑器里,按i进行编辑,写完程序按ESC退出,输入:wq保存并退出
如何通过java远程调用linux命令或shell脚本
1.导入maven依赖jar包
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>
2.编辑相应Java代码
packagecom.ksy.fw.base.util;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.UnsupportedEncodingException;
importorg.apache.commons.lang.StringUtils;
importch.ethz.ssh2.Connection;
importch.ethz.ssh2.Session;
importch.ethz.ssh2.StreamGobbler;
/**
*远程执行linux的shellscript
*/
publicclassRemoteExecuteCommand{
//字符编码默认是utf-8
privatestaticStringDEFAULTCHART="UTF-8";
privateConnectionconn;
privateStringip;
privateStringuserName;
privateStringuserPwd;
publicRemoteExecuteCommand(Stringip,StringuserName,StringuserPwd){
this.ip=ip;
this.userName=userName;
this.userPwd=userPwd;
}
publicRemoteExecuteCommand(){
}
/**
*远程登录linux的主机
*@return
*登录成功返回true,否则返回false
*/
publicBooleanlogin(){
booleanflg=false;
try{
conn=newConnection(ip);
conn.connect();//连接
flg=conn.authenticateWithPassword(userName,userPwd);//认证
}catch(IOExceptione){
e.printStackTrace();
}
returnflg;
}
/**
*远程执行shll脚本或者命令
*@paramcmd即将执行的命令
*@return命令执行完后返回的结果值
*/
publicStringexecute(Stringcmd){
Stringresult="";
try{
if(login()){
Sessionsession=conn.openSession();//打开一个会话
session.execCommand(cmd);//执行命令
result=processStdout(session.getStdout(),DEFAULTCHART);
//如果为得到标准输出为空,说明脚本执行出错了
if(StringUtils.isBlank(result)){
result=processStdout(session.getStderr(),DEFAULTCHART);
}
conn.close();
session.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
returnresult;
}
/**
*远程执行shll脚本或者命令
*@paramcmd即将执行的命令
*@return命令执行成功后返回的结果值,如果命令执行失败,返回空字符串,不是null
*/
publicStringexecuteSuccess(Stringcmd){
Stringresult="";
try{
if(login()){
Sessionsession=conn.openSession();//打开一个会话
session.execCommand(cmd);//执行命令
result=processStdout(session.getStdout(),DEFAULTCHART);
conn.close();
session.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
returnresult;
}
/**
*解析脚本执行返回的结果集
*@paramin输入流对象
*@paramcharset编码
*@return以纯文本的格式返回
*/
privateStringprocessStdout(InputStreamin,Stringcharset){
InputStreamstdout=newStreamGobbler(in);
StringBufferbuffer=newStringBuffer();;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(stdout,charset));
Stringline=null;
while((line=br.readLine())!=null){
buffer.append(line+"\n");
}
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
returnbuffer.toString();
}
publicstaticvoidsetCharset(Stringcharset){
DEFAULTCHART=charset;
}
publicConnectiongetConn(){
returnconn;
}
publicvoidsetConn(Connectionconn){
this.conn=conn;
}
publicStringgetIp(){
returnip;
}
publicvoidsetIp(Stringip){
this.ip=ip;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetUserPwd(){
returnuserPwd;
}
publicvoidsetUserPwd(StringuserPwd){
this.userPwd=userPwd;
}
publicstaticvoidmain(String[]args){
RemoteExecuteCommandrec=newRemoteExecuteCommand("127.0.0.1","root","root");
//执行命令
System.out.println(rec.execute("chmod777/usr/ksybak/myshell/tomcat-fw.sh"));
System.out.println(rec.execute("/usr/ksybak/myshell/tomcat-fw.sh"));
//System.out.println(rec.execute("/usr/ksybak/myshell/tomcat-fw.sh"));
//执行脚本
//rec.execute("sh/usr/local/tomcat/bin/statup.sh");
//这个方法与上面最大的区别就是,上面的方法,不管执行成功与否都返回,
//这个方法呢,如果命令或者脚本执行错误将返回空字符串
//System.out.println(rec.executeSuccess("ifconfig"));
}
}
linux如何运行sh脚本
Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法:
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本
方法二:以绝对路径的方式去执行bashshell脚本
方法三:直接使用bash或sh来执行bashshell脚本
方法四:在当前的shell环境中执行bashshell脚本
linuxshell脚本中如何引入当前的系统环境变量
你的export命令是给当前shell的,当前console一关,shell一退,就没了。
你应当把它写到每次启动时都加载的shell脚本里(系统的/etc/bashrc或者用户的~/.bashrc),它会在每次启动shell时都被执行。
Unix的所有环境变量、命令行指令alias什么的,都是使用这个机制。
什么是shell脚本
shell是计算机的壳通俗一点的解释是:
如果你要对计算机发布指令,让计算机去按照你的意愿做事,那么你就需要告诉计算机去做什么事,怎么样去做。一般来说你可以用像windows这样的图形操作系统来完成,你只需点点鼠标,敲敲键盘就能够搞定了。但是在图形下面的就是shell了,windows里面的dos语言就是一种shell。这些语言通过一定的规则和语法来对计算机进行操作,相对图形来说比较底层。
还有很多shell,比如Linux和Unix系统中的bash、ksh、csh等等。
而shell脚本的意思就是将这些shell的命令语句集合在一个文件中,进行一些较复杂的处理。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
本文链接:http://www.depponpd.com/ke/3361.html