1,shell是非类型的解释型语言
shell通常以.sh结尾命名
新建test.sh
sh -n test.sh 查看脚本是否有问题
sh test.sh 执行脚本
第一行#!/bin/bash 表名是shell脚本
定义变量 a=123 等号左右不能有空格
引用变量 $a或${a}
2,系统变量
$1 代表第一个参数
$2 代表第二参数与
$? 判断上一个输入是否正确,正确返回0
$* 代表所有参数
$# 统计参数的个数
3,逻辑运算符
-f 判读文件是否存在
-d 判断目录是否存在
-eq 等于,用于整型比较
-ne 不等于,用于整型比较
-lt 小于,用于整型比较
-gt 大于,用于整型比较
-le 小于等于,用于整型比较
-ge 大于等于,用于整型比较
-a 相当于and
-o 相当于or
-z 空字符串
4,提交判断
例一
#if后面有空格,(())中一般用于数字,[[]]一般用于-lt...
#!/bin/bash
A=123
if (($A > 100));then
echo "A 大于 100"
elif [[$A -lt 100]];then
echo "A 小于 100"
else
echo "A 等于 100"
fi
例二:判断文件是否存在
#!/bin/bash
DIR=/test
if [[ -d $DIR ]];then
echo "文件存在"
else
echo "文件不存在"
fi
例三:case
#!/bin/bash
case $1 in
a )
echo "a"
;;
b )
echo "b"
;;
* )
echo "其他"
;;
esac
例四 :select
#!/bin/bash
select i in a b c
do
echo "你选择的是:"$i
done
5,循环
#!/bin/bash
#方式一
for ((i=1;i<=10;i++))
do
echo "${i}"
done
#方式二
for i in `find /test/ -name "*.sh"|tail -2`
do
echo "${i}"
done
方式三
i=0
while [ $i -lt 10 ];
do
echo "$i"
((i++))
done
6,read
read -p "a:" a
echo $a
或read a #无提示
echo $a
案例一:
#!/bin/bash
while read line
do
echo $line
done </test/ip.list