Linux学习笔记-脚本(鸟哥13章)

结合着老段的视频,学习鸟哥私房菜,将一些自己容易忘记的知识点记录一下~


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 

linux cat命令详解

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








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值