shell是一个解释器,shell脚本是一个文件可以用shell解释的。
shell脚本必须以#!/bin/bash开头。
---02---
echo就是对变量做标准的输出。
$是表示引用定义好的变量,SHELL表示是linux定义的变量。
linux中一切皆文件,这个文件就是shell可以执行的命令而已:
其中network status就是两个参数,参数是以空格区分的。
---03---
如何查看当前用户的环境变量:
---
关于sh:
所以:
---04---
写一个简单的脚本:
我的脚本的路径:
如何执行:
用./执行的时候注意要使用权限的:
还可以:
还可以:
执行方式总结:
脚本的执行可以的命令:./ --- bash --- sh --- source
---05---
export
空格在bash里面是分隔符。
自定义变量:
(1)定义变量:变量=值,不能有空格 ,查看变量echo $变量
(2)撤销变量:unset 变量 set查看当前所有定义的变量
(3)声明静态变量:readonly变量,注意:不能unset
注意:变量的定义等号两端不能有空格。
变量定义的规则;
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2)等号两侧不能有空格
(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。
(5)使用双引号,可以识别空格之外的其他变量,使用单引号则会只会忽略空格!
(6)使用反引号,可以将语句运行的结果作为值赋值给变量!
变量的生命周期:
在第一次新增时产生
变量在执行unset时,撤销,失效!
关闭当前bash,所有定义的变量也不会存在!如何关闭当前的bash就用exit退出。
export:将变量提升为全局变量
演示下export:
如何新开bash:
红框代表我新启动一个bash在这里执行脚本
---06---
变量默认是字符类型。
注意: ①变量赋值时,值全部以字符串存在,无法进行运算!
②赋值的值中有空格,需要使用引号引起来
单引号: 不能识别$等特殊字符,不能脱义
双引号: 可以脱义$
③``,作用是将引号中的命令执行的结果赋值给变量
`命令` 等价于 $(命令)
---07---
特殊变量:
$0-n (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
$# (功能描述:获取所有输入参数个数,常用于循环)
$*、$@
$?
特殊的变量:
脚本:
#!/bin/bash
echo "$0 $1 $2 $3"
echo "$#" 参数个数
echo "$@" 参数列表
echo "$*" 参数列表
执行结果
$?:其中0是成功,其他的不是成功的。
---09---
关于运算:
(1)“$((运算式))”或“$[运算式]”
测试:
运算:
---10---
expr
案例:
---11---
条件判断
=:在判断里面只能用于字符串的比较
条件判断符。空格是中括号的左右两侧有空格,判断的符号还是有空格的。
1=0这里认为是字符串。
等号是字符串的比较
---12---
脚本:
#!/bin/bash
#判断用户输入参数是否为1
if [ $1 -eq 1]
then
echo 用户输入的参数是否是1
elif [ $1 -eq 2 ]
then
echo 用户输入的参数是2
elif [ $1 -eq 3 ]
then
echo 用户输入的参数是3
else
echo 用户输入的不是1,2,3
fi
也可以是这样写的
---13---
case
脚本:
#!/bin/bash
#用户输入的参数
case $1 in
gust)
echo "欢迎光临!" ;;
admin)
echo "欢迎管理员" ;;
*)
echo 不欢迎 ;;
esac
注意字符串有空格加引号,没有空格不加引号。
---14---
脚本:
#!/bin/bash
sum=0
for((i=1;i<=100;i++))
do
sum=$[$i+$sum]
done
echo 1-100之间的和是:$sum
---15---
foreach
三个人都是个好人
---16---
再次实验:
带了双引号则*为全部的参数作为整体 不带就是一样的
4.特殊变量
$?: 上一条命令的返回值!在bash中,如果返回值为0,代表上一条命令执行成功!
$#: 参数个数
$*: 参数列表。 在使用 "$*"时,将整个参数列表作为一个元素!
$@: 参数列表
$0-n: $0:脚本名
$1-$n: 第n个参数
获取第10以上的参数,${n}
---17---
while
---18---
关于read
---19---
返回的是最后一个路径斜杠之前的路径
---20---
---21---
关于${}:
函数:
#!/bin/bash
function add(){
result=$[$1+$2]
echo 两数之和为$result
return
}
具体写法:
---22---
awk:
---27---