1:shell环境 #!/bin/sh 或者 #!/bin/bash
shell文件开头的 #!告诉系统其后路径所指定的程序即使解释此脚本文件的shell程序
2:变量
your_name="llazy" //注意:变量名和等号之间不能有空格
可以使用语句给变量赋值 for file in 'ls /etc'或者 for file in $(ls /etc)
使用一个定义过的变量,在变量名前加 $ 例: echo $your_name 或者 echo ${your_name}
只读变量
your_name="llazy"
readonly your_name
删除变量 unset your_name
3:shell注释
单行注释 以#开头
多行注释 EOF也可为其他符号
:<<EOF
注释内容
注释内容
EOF
4:shell传递参数
执行shell脚本时,脚本内使用参数格式为:$n,n为数字 $0为执行的文件名 $1传入的第一个参数
$# :传入参数的个数
$* :以一个单字符串显示所有向脚本传递的参数
$$ :脚本运行的当前进程的ID号
$! :后台 运行的最后一个进行的ID号
5:shell基本运算符
条件表达式要放在方括号之间并且要有空格 [ $a == $b ]
原生bash不支持数学运算,可通过awk,expr
value=`expr 2 + 2` 乘号*前面要加反斜杠 \*
关系运算符:
关系云算法只支持数字,不支持字符串 返回true或者false
-eq : 相等 equal
-ne : 是否不相等 not equal
-gt : 左边是大于右边 greater than
-lt : 左边是否小于右边 less than
-ge : 左边是否大于等于右边 greater than or equal to
-le : 左边是否小于等于右边 less than or equal to
布尔运算符 ! 非运算
-o 或运算
-a 与运算
逻辑运算符 && ||
字符串运算符
= 检测两个字符串是否相等
!=
-z 检测字符串长度是否为0 为0返回true
-n 检测字符串长度是否不为0 不为0返回true
$ 检测字符串是否为空
6:shell函数
[ function ] funname [()]
{
action;
[return int;]
}
返回值 只能为0-255整数
参数传入:在调用函数时 可以直接传入参数 funname 1 2 3 内部使用 $1 $2表示第一个第二个参数
命令行下输入 if cont; then echo 'true'; fi 同一下语句
if count
then
echo 'true'
fi
if 后面
chmod 777