shell脚本是一组命令、函数、变量,或者您可以在shell中使用的任何东西。
您可以创建自己的shell脚本来自动化需要定期执行的任务。
一、shell脚本的创建和运行
1、创建shell脚本
touch show.sh
然后使用vi编辑器进行编辑
2、首行
#!/bin/bash
其中#!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。
3、注释
在每行开头注释加上#
4、shell脚本的权限
一般情况下,默认创建的脚本是没有执行权限的。因此需要赋予可执行权限
chmod +x show.sh
5、shell脚本的执行
(1)输入脚本绝对路径或相对路径
(2)sh+脚本
sh show.sh
(3)在脚本路径前加“.”或者source
source /root/helloWorld.sh
. ./helloWorld.sh
二、shell变量
1、变量命名规则
(1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头,环境变量名建议大写,便于区分。
(2)在bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。
(3)变量用等号连接值,等号左右两侧不能有空格。
(4)变量的值如果有空格,需要使用单引号或者双引号包括。
2、访问储存在变量中的值:在其名称前加上$符号.
echo自动换行,echo -n 不换行
3、当参数的值需要放在没有空格的其他文本旁边时,使用花括号
echo ${city}abc
4、变量可以包含命令或命令序列的输出
mydate=$(date)
num_files=$(/bin/ls | wc -l)
5、
单引号’(强引用):全部当成字符串
双引号”(弱引用):对变量进行解释(输出值或者执行命令)
反引号`(相当于$)
6、读变量 read
read -p:在read命令行中直接指定一个提示。
7、特殊的shell定位参数
$0是特殊的,它被指定用于调用脚本的名称;其余的则按照在命令行中传递的参数出现的顺序分配参数值。
$#你的脚本有多少个参数
$@变量保存在命令行输入的所有参数
$?接收最后执行的命令的退出状态
8、删除变量
unset NAME
9、shell脚本中的算术计算
通过内置let命令或者外置expr或者bc命令
aa=$((4+5))
bb=expr 4 + 5
(expr后只能跟整数参数)
10、参数展开
${var:-value}: 如果var未设置或为空,展开为value。
${var#pattern}: 从var的值前面去掉最短的匹配。
${var##pattern}: 从var的值前面砍掉pattern的最长匹配。
${var%pattern}: 从var的值的末尾去掉pattern的最短匹配。
${var%%pattern}: 从var的值的末尾砍掉pattern的最长匹配。
11、test语句,判断文件
12、字符串表达式
13、整数表达式
14、组合表达式
15、shell脚本中的if-else语句
16、shell脚本中的switch-case语句
17、shell脚本中的for语句
18、shell脚本中的while语句
19、shell脚本中的函数
注:
(1)在shell下编写if语句时,要注意空格符号的存在。在if和[ ]之间以及[ ]和之中内容之间都要有空格存在。
(2)用expr进行算术运算时,运算符两边要加上空格
(3)expr进行乘法运算时,要在*前面加上\(屏蔽其特定含义)