shell基本语法 变量 表达式 判断语句 if表达式


文件名以一般以.sh结尾 #!/bin/bash #显示后面的命令以哪种shell执行 #:表示注释 执行 1.chmod +x file.sh ------- ./file.sh 2./usr/local/scripts/file.sh(也需要有执行权限) 3.bash ./file.sh(不需要执行权限) shell变量 1.临时变量:shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见 2.永久变量:是环境变量,其值不随shell脚本的执行结束而消失 用户自定义变量:由字母或下划线打头。由字母、数字或下划线组成,并且区分大小写。变量名长度没有限制 引用变量值时,要在变量名前加上前缀$ 变量赋值用"=",两边不能有空格 将命令的值赋给一个变量。如:A=date B=$(date) 可以利用变量和其它字符组成一个新的字符串. set:列出所有的变量 给变量赋值多个单词(用单引号或双引号引起来)。A="one two" 单引号之间的内容原封不动地指定给变量 双引号取消了空格的作用,特殊符号的含义保留。 删除变量unset 变量名 位置变量和特殊变量 $n:这个脚本的第n个参数 $0:脚本名 $*:这个程序的所有的参数 $#:这个程序的参数个数 $$:这个程序的PID $!:执行上一个后台程序的PID $?:执行上一条命令的返回值 read命令 作用:从键盘读入数据,赋给变量 expr命令(用于计算)


test str1==str2 test str1 != str2 test str1 #测试字符串是否不空 test -n str1 #测试字符串长度不为零,则返回结果为真 test -z str1 #测试字符串长度为零,则返回结果为真


test int1 -eq int2 test int1 -ge int2 test int1 -gt int2 test int1 -le int2 test int1 -lt int2
test int1 -ne int2


说明:也可以省略test写成这样:[ int1 -lt int2 ]


文件测试 test -d file #测试是否为目录 test -f file
test -x file test -r file test -w file test -e file test -s file #测试大小是否为空


可简单写成这样:[ -x file ] =========流程控制语句========================= if 条件; then command fi


if 条件1; then command else command fi


多个条件的联合 -a或&&:仅当两个条件都成立时,结果为真 -o或||:逻辑或。两个条件有一个成立,结果为真


if 条件1; then command elif 条件2; then command elif 条件3; then command else command fi