建网站网络推广优势,连云港 网站 建设,网站更换空间教程,在国外网站做中国旅游推广#x1f308;个人主页#xff1a;聆风吟_ #x1f525;系列专栏#xff1a;Linux实践室、网络奇遇记 #x1f516;少年有梦不应止于心动#xff0c;更要付诸行动。 文章目录 一. ⛳️什么是Shell脚本#xff1f;二. ⛳️Shell 入门三. ⛳️Shell 变量3.1 #x1f514;变… 个人主页聆风吟_ 系列专栏Linux实践室、网络奇遇记 少年有梦不应止于心动更要付诸行动。 文章目录 一. ⛳️什么是Shell脚本二. ⛳️Shell 入门三. ⛳️Shell 变量3.1 变量定义3.2 变量访问3.3 变量类型未完待续 四. ⛳️shell 输入输出4.1 变量值输出4.1.1 echo输出4.1.2 printf输出 4.2 变量值输入 五. ⛳️ 数组5.1 数组定义5.2 读取数组元素值 六. ⛳️表达式6.1 算术表达式6.2 逻辑表达式 七. ⛳️Shell 控制结构7.1 分支结构if语句7.1.1 单分支语句7.1.2 两分支语句7.1.3 多分支语句 7.2 分支结构case语句7.3 循环结构for语句7.4 循环结构while语句7.5 循环结构until语句 八. ⛳️Shell函数8.1 函数定义8.2 函数调用与参数传递8.3 函数的返回值 全文总结 一. ⛳️什么是Shell脚本
基于Shell语言的语法规则编写而成支持Linux/UNIX下的命令的调用。 二. ⛳️Shell 入门
文本编辑工具vi/vimgedit
#创建一个文本文件test.sh
vi test.sh运行Shell脚本的几种方法
#方法一为Shell脚本添加可执行权限
#chomd命令可以给Shell脚本加上执行权限
chmod x test.sh #给脚本添加运行权限
./test.sh #运行脚本文件注意./不能省略#方法二直接使用Bash或sh来运行Shell脚本
bash test.sh #使用Bash运行Shell脚本
sh test.sh #使用sh运行Shell脚本#方法三使用source命令运行Shell脚本
#source命令强制执行脚本文件的全部命令并不需要事先修改脚本文件的权限
source test.sh
#也可以简写为如下方式.和文件名之间有一个空格
. test.sh三. ⛳️Shell 变量
3.1 变量定义
#变量的定义格式
变量名变量值 #等号两边不能有空格#shell支持以下3种定义变量的方式
VariableNameVariableValue
#如果VariableValue包含了空格符那么就必须使用引号单双引号区别在变量访问中讲解。
VariableNameVariableValue
VariableNameVariableValue3.2 变量访问
#要获取一个变量的值只须在变量名前面加一个$。
#注意在对变量重新赋值时不能在变量名前加$。
authorzp
echo ${author} #输出zp#变量名称的边界
#给变量加花括号 “{}” 可以帮助解释器准确识别变量的边界。
languageShell
#加{}避免把languageScript当作变量处理
echo Its a ${language}Script file #输出Its a ShellScript file#引号的使用
#单引号以单引号 包围变量的值时单引号里面是什么就输出什么即使内容中有变量和命令也会它们原样输出
#双引号以双引号 包围变量的值时不是把双引号中的变量名和命令原样输出而是会先解析里面的变量和命令然后再输出。#命令替换 —— 通过命令替换可达到将命令的执行结果赋值给变量的目的。
#第一种把命令用反引号 包裹起来移植性高。
#第二种把命令用$()包围起来。
echo Today is $(date)
echo Today is date3.3 变量类型未完待续 四. ⛳️shell 输入输出
4.1 变量值输出
4.1.1 echo输出
echo命令发送数据到标准的输出设备并以字符串的方式输出一个变量
选项说明-e识别输出内容里面的转义字符-n忽略结尾的换行
echo Hello\tShell #输出Hello\tShell
echo -e Hello\tShell #输出Hello Shell
echo -n Hello\tShell #输出Hello\tShellzplab:~/shell$ 4.1.2 printf输出
printf支持格式化输出。printf的默认输出不换行换行时需要用户手动加 “\n”
printf Hello\tShell #输出Hello Shelllab:~/shell$识别转义字符无换行功能
printf Hello\tShell\n #输出Hello Shellprintf %c $c4.2 变量值输入
#read命令用于读取标准输入设备的下一行。
read [参数] [变量名]#输入多个变量值
#从标准输入读取一行直至遇到第一个空白或换行符并将第一个词和剩余部分分别赋值给first和last
read first last五. ⛳️ 数组
5.1 数组定义
Bash Shell只支持一维数组初始化不需要定义数组大小数组元素的编号由0开始。
#数组定义格式
array_name(value1 value2 ... valuen) #Shell数组用括号来表示元素之间用空格隔开#下标定义
array_name[0]value0
array_name[1]value1
array_name[2]value2
#赋值号的两边不能有空格其必须紧挨着数组名和数组元素5.2 读取数组元素值
#读取数组元素值
${array_name[index]}#获取数组中的所有元素
${array_name[]}
#或
${array_name[*]}#获取数组长度
${#array_name[]}
#或
${#array_name[*]}六. ⛳️表达式
6.1 算术表达式
#使用expr命令时需要注意操作数用于计算的数和运算符之间一定要用空格
valexpr 100 / 2
echo $val#使用$[]表达式进行数学运算此时不要求运算符与操作数之间有空格
echo $[100/2]6.2 逻辑表达式
使用test命令及其别名来检查逻辑表达式是否成立。
#test命令的语法格式
test 逻辑表达式
#用例
test 2 2 #正确示例等号前后都有空格#test命令有一个别名即左方括号其语法格式
[ 逻辑表达式 ] #使用左方括号时逻辑表达式两边必须有空格
#用例
[ 2 2 ] #正确示例等号前后均有空格数字与方括号间亦有空格七. ⛳️Shell 控制结构
7.1 分支结构if语句
7.1.1 单分支语句
#单分支语句
if condition
then语句
fi#注意then可以和if写在一行必须要在condition后面加分号。
if condition; then语句
ficondition部分一般可以使用 “(())” 或者 “[]” 来计算逻辑表达式的值前者与c的语法规则更加接近推荐使用。 7.1.2 两分支语句
#两个分支
if condition
then语句1
else语句2
fi7.1.3 多分支语句
#多分支if
if condition1
then语句1
elif condition2语句2
elif condition3语句3
...
else语句n
fi7.2 分支结构case语句
#case、in和esac都是Shell关键字
#expression表示表达式
#pattern表示匹配模式
case expression inpattern1)语句1;;pattern2)语句2;;pattern3)语句3;;...*)语句n
esac7.3 循环结构for语句
#c语言风格的for循环语法格式
for ((exp1; exp2; exp3))
do语句
done # ((sum i))做运算等于C语言中sum i#python语言风格的for循环语法格式
for variable in value_list
do语句
done7.4 循环结构while语句
#while循环用于不断执行一系列命令直到测试条件为假时才终止循环。
#语法格式
while condition
do语句
done7.5 循环结构until语句
#until循环用于执行一系列命令直到所指定的条件为真时才终止循环。
#语法格式
until condition
do语句
done八. ⛳️Shell函数
8.1 函数定义
#Shell函数必须先定义后使用。代码格式
[function] 函数名(){语句序列[return 返回值]
}#functin关键字可以省略不写
#如果加上function则函数名后面的小括号可以省略
function 函数名{语句序列[return 返回值]
}8.2 函数调用与参数传递
#不传递参数可以直接给出函数名调用方式
函数名#传递参数函数名后面接参数列表参数之间以空格分隔。调用方式
函数名 参数1 参数2 ... 参数n#函数参数是位置参数的一种可以使用$n在函数内部接受调用时传递参数。
#$1表示第一个参数$2表示第二个参数以此类推。#可以通过$#获取所传递参数的个数。#可以通过$或者$*一次获取所有参数。8.3 函数的返回值
Shell函数中的return关键字用于表示函数执行的成功与否。返回重要数据时可能事与愿违尤其是非数值类型的数据。
获取Shell函数返回结果的方法
直接从函数内部输出数据。使用全局变量。Shell函数中定义的变量默认是全局变量函数与其所在脚本共享该全局变量。可以使用local关键字定义局部变量。使用内置变量。通过$?这一特殊的内置变量来获取上一个命令执行后的返回结果。 全文总结 今天的干货分享到这里就结束啦如果觉得文章还可以的话希望能给个三连支持一下聆风吟的主页还有很多有趣的文章欢迎小伙伴们前去点评您的支持就是作者前进的最大动力