一.sh脚本
1. #!/bin/bash,使用./test.sh(chmod +x test.sh使之具有可执行权限)
2. /bin/sh test.sh
二.变量
1. 定义变量时,需要加$等符号,直接定义即可:
test_name="test"
2. 使用$使用变量,也可以在变量外面加个花括号:
echo ${test_name}
3. 在变量前加个readonly就是只读变量了:
readonly test_name
4. 使用unset删除变量
5. 包括了局部变量和环境变量两种类型
6. 单引号和双引号都可以用来表示字符串,但是双引号中还可以有变量和转义字符,单引号里面的内容原样输出
7. echo ${#test_name}输出test_name的长度
8. echo ${test_name:1:3}输出est
...
三.数组
1. 数组名={值1 值2...值n},例如array={123, 234}
2. ${array[下标]}取某个下标的元素,${array[@]}或者${array[*]}求数组所有元素
3. ${#array[@]}或者${#array[*]}求数组个数
...
四.注释
1. 使用#或者:<<! 注释内容 !
五.传参
1. $0 $1 ... $n ,表示文件名,第1个参数... 第n个参数
2. $#传递参数的个数,$*和$@表示传递的参数,
六.运算符
1.expr表达式
2.算数运算符,+ - * / % == != =,求值的时候需要用空格隔开运算符
val=`expr 2 + 2`
echo $val
3.关系运算符
-eq
-nq
-gt
-lt
-ge
-le
4.布尔运算符
!
-o
-a
5.逻辑运算符
&&
||
6.字符串运算符
=
!=
-z
-n
&
7.文件测试运算符
-b file
-c file
-d file
...
七.echo命令
八.printf命令
九.test命令
十.流程控制
1.分支
if condition
then
...
...
fi
if condition
then
...
...
else
...
fi
if condition1
then
...
elif condition2
then
...
else
...
fi
2.循环
for var in ... (如果do和for写在一行,需要在do前加分号;)
do
...
done
while condition
do
...
done
死循环:
while :
do
...
done
或
while true:
do
...
done
或
for (( ; ; ))
until condition
do
...
done
case 值 in
模式1)
;;
模式2)
;;
esac
十一.函数
函数名(){
}
十二.重定向
>
<
>>
>&
<&
<<
十三.文件包含
. 文件名
或者
source 文件名