学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

我不信,难道连 sudo rm -rf /bin 也不会写?

如何运行shell脚本?

新手必知的问题,这里简单说下4种方式:

1.脚本所在目录执行

比如我现在有一个脚本叫test.sh,首先确保有执行权限,如果没有,需要赋予执行权限。

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

需要注意的是:如果shell脚本第一行申明了其他语言(比如python),但是正文是shell编程语言语法,那么将会报错。

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

补充一个知识点:

一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:

#!/bin/bash

或者是

#!/bin/sh

2.脚本以绝对路径执行

比如你现在在/tmp目录下,你要执行家目录(/opt/testerzhang)下的test2.sh,那么我们就以绝对路径执行。

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

3.sh命令执行

我们可以用sh命令来执行具体的shell脚本,这种情况下,不需要赋予文件执行权限。

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

当然我们也可以将sh命令改成bash命令执行,也是可以的。

4.source命令或者点符号命令执行

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

看了上面4种方式,相信你已经了解了如何去运行一个shell脚本。

如何通过java远程调用linux命令或shell脚本?

这个非常简单,基本原理先通过ssh连接远程Linux主机,然后执行shell命令,获取返回结果,下面我简单介绍一下实现过程,主要内容如下:

1.首先,需要在maven中导入程序所依赖的Jar包,这个直接在pom.xml文件中输入就行,如下:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

2.接着就可以用Java编程来实现远程连接Linux主机并执行shell命令或脚本了,主要步骤及截图如下:

  • 首先,导入程序所依赖的包,初始化成员变量,这里定义了一个ExecuteShell类,创建对象时,需要输入IP地址、用户名和密码这3个参数,用于后面ssh连接远程Linux主机,代码如下,非常简单:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

  • 接着就是远程连接Linux主机了,测试代码如下,很好理解,创建一个Connection连接,如果连接成功,则返回true,失败则返回false:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

  • 连接成功后,我们就可以直接执行Linux shell脚本或命令了,测试代码如下,非常简单,打开一个Session会话,然后执行shell命令或脚本,返回执行结果:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

processStdout函数代码如下,主要是取得shell命令和脚本返回的结果,代码如下:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

  • 最后,在main函数中创建ExecuteShell类对象,调用execute函数执行shell命令或脚本就行,如下:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

点击运行程序,截图如下,已经成功执行shell,并取得返回的结果:

学了三年的Linux了,我现在不能立马写出一个简单的shell脚本,怎么回事啊?

至此,我们就完成了利用Java来远程调用Linux命令或shell脚本。总的来说,整个过程非常简单,代码量也不多,很好理解,只要你有一定的Java基础,熟悉一下上面的代码和示例,多调试几遍程序,很快就能掌握的,网上也有相关教程和资料,非常丰富详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论