结合着老段的视频,学习鸟哥私房菜,将一些自己容易忘记的知识点记录一下~
1.开头必备
#!/bin/bash
2.数值运算
将aa定义为整形,并进行计算赋值
declare -i aa #定义整形
aa=5+6 #计算
echo $aa #输出
let和()可以直接计算
let bb=2+3
cc=$((2+3))
3.返回值
记录最后一次操作的状态
正确返回 0
错误返回 非0值
!和C不一样耶,( •̀ ω •́ )注意一下
echo $?
4.比较
类型 | 等于 | 大于 | 大于等于 | 小于 | 小于等于 |
数字 | -eq | -gg | -ge | -lt | -le |
字符 | == | > | >= | < | <= |
4.1可以用 test 或者 [ ] 进行比较
aa=3
bb=4
test $aa -eq $bb
echo $?
不正确,所以返回一个非零数字
或者
[ $aa -gt $bb ]
注意中括号前后一定要有空格
4.2多个语句进行判断
&&与 || 或
[ $aa -lt $bb ] && echo OK
前面为真,后面耶要判断,输出OK
[ $aa -gt $bb ] || echo OK
前面为假,或运算后面也要判断。输出OK
5.判断
5.1对文件进行判断
-f 文件地址 是否存在
-r 文件地址 是否具有读权限
-w,-x同理
5.2对文本进行判断
-z 文本地址 是否存在
--------------------------------------------------------------
详见鸟哥454页
----------------------------------------------------------------
6.shell的默认变量
$0 表示文件名,$1 第一个参数,$2第二个参数
7.if
if 命令|判断语句 ; then
命令
elsif 判断语句 ;then
命令
else
命令
fi
Eg。判断系统中是否存在某一个用户
#!/bin/bash
grep ^$1 /etc/passwd
if [ $? -eq 0 ]; then
echo "$1是存在的"
else
echo "不存在 $1"
fi
Eg.判断年龄
#!/bin/bash
#set -x 排错
read -p "请输入您的年龄 :" age
if [ "$age" -lt 0 ] || [ "$age" -ge 200 ]; then
echo "请输入正确的年龄"
elif [ "$age" -lt 20 ] && [ "$age" -ge 0 ] ; then
echo "小朋友"
elif [ "$age" -lt 70 ] && [ "$age" -ge 20 ] ; then
echo "大朋友"
else
echo "BFG"
fi
8 case
case1
case $1 in
[Tt]o*) #正则T/t开头,o,任意结尾
echo tom
;;
bob | mary)
echo xxx
;;
*)
echo zzz
esac
case2
#!/bin/bash
cat <<END
1)TOM
2)MARY
3)BOB
END
read -p "请选择一个数字: " nu
case $nu in
1)
echo tom
;;
2)
echo mary
;;
3)
echo bob
;;
esac
case3
#!/bin/bash
PS3="请选择要执行的命令"
select xx in 'ls -l' pwd date
do
$xx
done
Bash Shell中的select命令简单使用示例
9函数
#!/bin/bash
function xx() { #function可以省略
echo xxxxxxxxxx
}
xx
echo 123
xx
10 循环
10.1 while
#!/bin/bash
sum=0
while [ "$sum" -lt 10 ]
do
let sum+=1
echo $sum
done
10.2
xx=0
until [ "$xx" -gt 24 ]
do
echo "$xx "
case "$xx" in
[0-9]|1[01])
echo "上午好"
;;
12)
echo "午饭时间"
;;
1[3-7])
echo "下午好"
;;
*)
echo "晚上好"
;;
esac
let xx+=1
done
10.3 for
for i in *
do
cp $i ${i}.bak
done