文章目录
前言
本文主要叙述了shell的背景知识、shell脚本的基本语法、shell脚本示例、和一些shell常用命令。
提示:此篇文章记录了本人学习shell的历程,如有错误的地方还请海涵。
一、shell的背景知识
shell就是一个用于用户和内核交互的工具。在Linux系统中设计了shell来控制内核和获取内核状态。而shell脚本就是一个文本文件,简单的说重复操作shell,可以通过编写一个shell脚本自动帮我们完成。
1.shell脚本执行器
shell脚本当然要有shell脚本执行器来执行,shell脚本执行器这里主要是bash和sh这两个。sh是bash的缩减版,因此为了功能齐全建议都是用bash来执行shell脚本。
shell脚本的执行方式有三种
先编写一个shell脚本命名为 hello.sh
#!/bin/bash
echo > "hello word!"
#第一行是执行器路径
#第二行是向终端输出hello word
1、当成可执行文件直接执行
chmod +x hello.sh #赋予可执行权限
./hello.sh #执行程序
2、作为解释器参数
/bin/bash hello.sh
3、使用内置的shell命令source
source hello.sh
注:source命令在当前目录执行程序,和前两者区别是不会产生新的进程。
二、shell脚本的基本语法
1、变量、数组、运算符
#!/bin/bash
#变量######################################################
value_1="12" #变量赋值
echo $value_1#使用变量
echo ${value_1}#花括号用于解释器识别边界可不加
readonly value_2#只读变量
unset value_2#=删除变量
#1.局部变量:当前脚本定义的变量
#2.环境变量:shell启动的程序,都能访问的变量
#3.shell变量:由shell程序设置的特殊变量,部分环境变量部分局部变量
str='this is string'#单引号是原样输出包括变量
str_1="this is string \n yes!" #转义输出 (换行)
str_2="hello"
str_3="word !"
echo $str_2 $str_3#拼接字符串
echo "$str" #输出变量
echo $(echo_3)#输出字符串长度
echo $(str:2:4)#跳过第2个字符开始往后数4个输出
echo `expr index "$str_1" io`#输出3 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个)
#数组######################################################
array_1=(val_1 val_2 val_3 val_4)#空格分开
array_1[0]=val_1#单独赋值
value=${array_1[n]}#获取数组元素中的值 [@]获取所有元素
echo ${array_1[1]}#输出第一个元素
length=${#array_1[@]}#获取元素个数
:<<EOF # EOF也可以替换为 ! "
多行注释
EOF
#运算符######################################################
#算数运算符-----------------------------------------------------
val_1=`expr 4 + 6`
echo "两数相加为 : $val_1"
value=`expr $val_1 + $val_2` # + - / % =
value`expr $val_1 \* $val_2` # 注意乘号*要写成\*
return_1=[$val_1 == $val_2] # == !=(返回的是fale 或者true)
#注意:[$a==$b] 是错误的,必须写成 [ $a == $b ] (需要加空格)
#关系运算符-----------------------------------------------------
val_1=10
val_2=20
if [ $val_1 -eq $val_2 ]
then
echo "$val_1 -eq $val_2 : val_1 等于 val_2"
else
echo "$val_1 -eq $val_2: val_1 不等于 val_2"
fi
# -eq 相等为true
# -ne 不等为true
# -gt 左边大为true
# -lt 左边小为true
# -ge 左边大于等于为true
# -le 左边小于等于为true
#布尔运算符-------------------------------------------------------
#字符串运算符
#文件测试运算符
2、echo、printf、test
#!/bin/bash
#echo######################################################
#printf######################################################
#test######################################################
3、流程控制、函数、输入\输出重定向、文件包含
#!/bin/bash
#流程控制######################################################
#函数######################################################
#输入\输出重定向######################################################
#文件包含######################################################
三、shell脚本的示例
1.引入库
代码如下(示例):
2.读入数据
代码如下(示例):
待续…
总结
shell脚本的基础使用