AI智能
改变未来

简单的Shell脚本编程


创建Shell脚本

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

输入一些代码,第一行一般是这样:

#!/bin/bashecho \"Hello World\"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本。

执行的方法一般有两种,但前提需要具备此脚本的执行权限

chmod +x xxx.sh

sh xxx.sh #常用方法1./xxx.sh #常用方法2

变量

Shell定义变量时,变量名不加美元符号

$


使用一个定义过的变量,只要在变量名前面加美元符号

$

即可,如:

your_name=\"qinjx\"echo $your_nameecho ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,建议加上。

for循环

seq方式

for i in `seq 1 100` #注意,不是单引号doecho $idone

类C方式

for ((i=1; i<=100; i++))doecho $idone

类Python方式

for i in {1..100}doecho $idone

例如

for aa in seq `1 10000`;doecho\"====START $aa Times======\"...各种函数echo\"====END $aa Times======\"done

ping

不管在windows平台,还是在linux平台,ping都是非常常用的网络命令;ping命令通过ICMP(Internet控制消息协议)工作;ping可以用来测试本机与目标主机是否联通、联通速度如何、稳定性如何。

ping命令运行在命令提示符终端,用法为:“ping 参数 目标主机”。其中参数为零到多个,目标主机可以是IP或者域名。

参数 解释
-c ping指定次数后停止ping;
-W 以毫秒为单位设置ping的超时时间;例如ping -W 5 www.baidu.com,意思就是只ping5秒,5秒后命令结束。
-f 极限检测,快速连续ping一台主机,ping的速度达到100次每秒;

流程控制

if语句
在sh/bash里,如果else分支没有语句执行,就不要写这个else。

if [ $val1 -eq $val2 ] #不要省略空格,很重要thencommand1command2...commandNfi
if conditionthencommand1command2...commandNelsecommandfi

函数

1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。

2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

funWithReturn(){echo \"这个函数会对输入的两个数字进行相加运算...\"echo \"输入第一个数字: \"read aNumecho \"输入第二个数字: \"read anotherNumecho \"两个数字分别为 $aNum 和 $anotherNum !\"return $(($aNum+$anotherNum))}funWithReturnecho \"输入的两个数字之和为 $? !\"

可以利用$n来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…

funWithParam(){echo \"第一个参数为 $1 !\"echo \"第二个参数为 $2 !\"echo \"第十个参数为 $10 !\"echo \"第十个参数为 ${10} !\"echo \"第十一个参数为 ${11} !\"echo \"参数总数有 $# 个!\"echo \"作为一个字符串输出所有参数 $* !\"}funWithParam 1 2 3 4 5 6 7 8 9 34 73

基本运算符

字符串运算符 说明
= 检测两个字符串是否相等,相等返回 true。[ $a = $b ] 返回 false。
!= 检测两个字符串是否相等,不相等返回 true。
关系运算符 说明
-eq 检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 简单的Shell脚本编程