了解Shell(基于MAC)(下)

1.循环

for循环

#方法一
for  ((i=0;i<10;i++))
do 
	printf $i
done 
echo
#方法二
for i in 0 1 2 3 4 5 6 7 8 9
do 
	printf $i
done
echo
#方法三
for i in {0..9}
do 
printf $i
done

输出如下

while循环

COUNTER=0
while [ $COUNTER -lt 5 ]
do 
	COUNTER=`expr $COUNTER + 1`
    echo $COUNTER
done 


echo '请输入...'
echo 'ctrl + c 即可停止该程序'
while read NUM
do 
	echo "$NUM"
done

输出如下

循环控制

break  #跳出所有循环

break n  #跳出第n层循环

continue #跳出当前循环

2. 条件判断

a=10
b=20
if [ $a -eq $b ]    #等于
then 
	echo "true"
else
	echo "false"
fi

if [ $a -ne $b ]    #不等于
then 
	echo "true"
else
	echo "false"
fi

if [ $a -gt $b ]    #大于
then 
	echo "true"
else
	echo "false"
fi

if [ $a -lt $b ]    #小于
then 
	echo "true"
else
	echo "false"
fi 

if [ $a -le $b ]   #小于等于
then 
	echo "true"
else
	echo "false"
fi 

if [ $a -ge $b ]   #小于等于
then 
	echo "true"
else
	echo "false"
fi 

输出如下

这一部分记忆有一个小秘诀,就是根据英文字母来记忆 g即为greater 的首字母,同理,equal ,low

4.case判断

num=10
case $num in
	1)
		echo 1
		;;
	2)
		echo 2
		;;
	10)
		echo 10
		;;
	*)
		echo somethin else
		;;
esac

输出如下

5.算数运算

.加减乘除

echo "hello World !"
a=3
b=5
val=`expr $a + $b`
echo "Total value : $val"

val=`expr $a - $b`
echo "Total value : $val"

val=`expr $a \* $b`
echo "Total value : $val"

val=`expr $a / $b`
echo "Total value : $val"

val=`expr $a % $b`
echo "Total value : $val"

if [ $a == $b ]
then 
	echo "a is equal to b"
fi
if [ $a != $b ]
then 
	echo "a is not equal to b"
fi

输出如下

6.逻辑运算符

。if [条件A] && [条件B]

。if((A&&B)

。if[[ A&&B ]]

num1=10
num2=20
num3=15
if [[ $num1 -lt $num3 && $num2 -gt $num3 ]]
then 
	echo $num3 is between 10 and 20
else
	echo something else
fi

输出如下

7.函数

read

     read命令接收标准输入(键盘)的输入,或者其他文件描述符的输入。得到输入后。read命令将数据放入一个标准变量中。

declare

     申请变量的类型

declare [-aixr] variable
-i: 把变量定义为整数
-a: 把变量定义为数组
-x: 把变量变成环境变量
-r: 可读变量

#定义一个没有返回值的函数,然后调用该函数
sysout(){
	echo "hello world"
}
sysout

#定义一个有返回值得函数,调用该函数,输出结果
test(){
	aNum=3
	anotherNum=5
	return $(($aNum+$anotherNum))
}
test
result=$?
echo $result


#定义了一个需要传递参数的函数
test(){
	echo $1 #接收第一个参数
	echo $2 #接收第二个参数
	echo $3 #接收第三个参数
	echo $# #接收到参数的个数
	echo $* #接收到的所有参数
}
test aa bb cc 

read -p "Enter your name:" VAR_NAME
echo "hello $VAR_NAME, welcome to my program"
read -t 10 -p "enter your name:" VAR_NAME
echo "hello $VAR_NAME,welcome to my program"
read -s -p "Enter your password: " pass
echo "hello $VAR_NAME,your password is $pass"

sum=1+2+3
echo $sum
declare -i sum=1+2+3
echo $sum

    输出如下

8.字符串操作

str1="Hello"
str2="World"

echo ${#str1} #输出字符串长度
echo ${str1:0:3} #截取字符串
echo $str1" "$str2 #字符串拼接

输出如下:

9.重定向

    注意 :0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR) 。

$echo result > file  #将结果写入文件,结果不会在控制台展示,而是在文件中,覆盖写
$echo result >> file  #将结果写入文件,结果不会在控制台展示,而是在文件中,追加写
echo input < file  #获取输入流
$ command > file 2>&1 # 将 stdout 和 stderr 合并后重定向到 file,
$ command < file1 >file2 # command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2。

9.其他命令

date

     格式化的输出 + %Y - %m - %d

     格式%s表示自1970-01-01 00:00:00 以来的秒数

参考链接:

https://www.jianshu.com/p/f7ef4f95f5c6

https://www.runoob.com/linux/linux-shell-func.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值