#! 符号意思
#! 并非注释的意思 用于脚本开头 命令解释器标识
bash #!/bin/bash
python #!/usr/bin/python2 或 #!/usr/bin/env python2
变量
1定义变量
定义变量:bianLiang=123
变量取值:$bianLiang
' ' 和 ""区别
'' 不能解析 相当于字符串
"" 可以被解析
#!/bin/bash num=200 echo "num=$num" echo 'num=$num' 输出结果 num=200 num=$num
位置变量 | 含义 |
$n(数字) | 脚本的第n个参数 |
$0 | 脚本名字 |
$# | 脚本参数个数 |
$@ | 取出脚本所有参数 |
$* | 取出脚本所有参数 |
"$?" | 用于检查上一个命令是否正确,(linux中命令退出0表示正确 非0 不正确) |
$$ | 当前进程号 |
变量赋值
直接赋值 | canshu=123 |
命令结果赋值 | canshu=‘123’ |
通过执行脚本命令后带参数(传参) | canshu =$1 |
交互式赋值 | 通过read命令 read -p "请输入密码" pass read -s -p "请输入密码" pass 输入时候控制台不显示输入内容 -s |
运算
符号 含义 + - * \ % 加 减 乘 除 取余 && || 并且 或者 运算命令 awk 可以进行小数计算,可以和shell脚本变量传递 expr 可用于检测是否位数字 let 计算 整数 变量直接使用 判断符号 等于 -eq (equal) 不等于 -ne (not equal) 大于 -gt (greater than) 大于等于 -ge (greater equal) 小于 -lt (less than) 小于等于 -le (less equal)
awk基础用法
awk 'BEGIN{print 1/3}'
使用shell变量
awk -v n1=1 -v n2=2 'BEGIN{print n1/n2}'
条件判断
test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ]
使用方括号时,要注意在条件两边加上空格1,文件测试
表达式: -e 是否存在 -d是目录 -f是文件 -r可读 -w可写 -x可执行 -L符号链接 -c是否字符设备 -b是否块设备 -s非空文件
#!/bin/bash #输入文件名字 判断是否存在 返回0 存在 read -p "输入文件名:" name # test -e $name [ -e $name] echo $?
2.字符串测试
= 是否相等 !=不相等 -z空字符串 -n非空
#!/bin/bash #输入y或者n 判断是相等 返回0 相等 test -z $yn echo $? read -p "输入y/n" yn [ -z $yn] echo $? [ $yn="y"] echo $? #----------------以上脚本内容-------以下输出结果-------- 结果输出: 0 假如输入的是 y 1 0
if语句
if语句 格式一: if [条件1]; then 执行第一段程序 else 执行第二段程序 fi 格式二: if [条件1]; then 执行第一段程序 elif [条件2];then 执行第二段程序 else 执行第三段程序 fi
case语句
case $变量名称 in “比较的变量1” ) 逻辑处理 ;; -->相当于break “比较的变量2” ) 逻辑处理 ;; esac
for循环
形式一
for((初始值;限制值;执行步介)) do 程序 done #举例 for(( i=0;i<=100;1++ )) do 程序 done
形式二
for 参数 in 被循环体 do 逻辑 done
while
while [ 条件 ] do 逻辑 done
break continue区别
break:跳出循环
continue:不会跳出循环体,只跳过当前的循环
函数
定义格式一:
函数名称(){
}
定义格式二:
function 函数名称(){
}
#使用函数举例
#定义函数
function maxmax(){
if[ $n1 -gt $n2];then
return $n1
else
return $n2
fi
}
read "请输入参数1" n1
read "请输入参数2" n2
#调用函数
maxmax $n1 $n2
echo "最大参数 $?"
#导入函数方式
source 函数名字.sh
语其他
#输出
cat <<EOF
写上输出内容
EOF