linux 下脚本,linux下脚本使用之基础篇

1,实现条件判断有三种方法:

test + expression

[ expression ]         expression 两边必须是空格,否则出现语法错误

[[ expression ]]

想实现里面的expression则需要经过测试--》分别是--》

条件测试

整数测试 :

-lt(less than)例如:[ $A -lt $B]小于

-gt(great than)                     大于

-le(less equal)                     小于等于

-ge(great than)                     大于等于

-eq(equal)                          等于

-ne(not equal)                  不等于

写一个小脚本如下所示:(此脚本用来从键盘读入两个变量 $1 $2,然后比较两个值的大小)

#!/bin/bash

#written by jobs

#date : 07 - 23

[ $1 -lt $2 ] && echo "the min is $1" || echo "the max is $2"

字符串测试:

==

<

>

-z示判断字符串是否为空,为空则为真,不空则为假

-n                   刚好跟-z相反 ……

文件测试:

-e                    判断一个文件是否存在

-f                    判断一个文件是否为普通文件

-d                     ……            是否为目录

-h/-l                  是否为链接文件

-r                     是否可读

-w                     是否可写

-s                     p判断是否存在并且为空

-x                      判断是否可执行

-o                     判断文件的执行者是否为所属主

例如:[ -x mytest12.sh ]   && sh mytest12.sh

组合条件测试:

-a  [-x /etc/passwd -a -w /etc/passwd]  同时满足r w

-o  [-x /etc/passwd  -o -w /etc/passwd]  满足其一即可

-not

练习如下:如果输入是Q或q ,则显示quiting ...

否则显示 Are you crazy?

#!/bin/bash

#written by jobs

#date 07 - 23

if [ $1 = "Q" -o $1 = "q" ];then

echo "quiting..."

else

echo "Are you crazy?"

fi

~

2,种执行方式:顺序 选择 循环

选择执行: if  和 case

if的格式为:

if CONDITION ; then

statement

....

fi                             (单分支语句)

if CONDITION ; then

statement

....

else

....

fi                              (双分支语句)

if CONDITION ; then

statement

...

elif CONDITION; then

statement

...

elif CONDITION ;then

...

else statement

...

fi                            (多分支语句)

那么我们用if判断语句就可以将我们上面的脚本实例改写为:

#!/bin/bash

#written by jobs

#date : 07 - 23

if [ $1 -lt $2 ] ; then

echo "the min is $1"

else

echo "the max is $2"

fi

3,几种特殊的数学运算符

+=                         自加然后付值给自己   sum=$[$sum+1]

-=                                              sum=$[$sum-1]

*=

/=

++

--

写几个脚本的实例练习一下:

第一个--》判断一个文件是否存在,存在则显示……不存在则显示……

#!/bin/bash

#written by jobs

#date 07 - 23

if [ -e $1 ];then

echo "$1 is exist!"

else

echo "$1 is not exist!"

fi

第二个:写一个脚本 ,当输入一个路径的时候,能判断其是一般文件还是链接文件还是目录……

#!/bin/bash

#written by jobs

#date 07-23

if [ -d $1 ];then

echo "$1 is a directory"

elif [ -f $1 ]; then

echo "$1 is a commen file"

elif [ -l $1 ]; then

echo "$1 is a link"

else

echo "$1 is a ghost!!!"

fi

第三题: 求100之内偶数之和

#!/bin/bash

#written by jobs

#date : 07 -23

let sum=0

for I in {1..100};do

if [ $[I%2] -eq 0 ];then

sum=$[$sum+I]

else

echo "I am $I"

fi

done

echo "the sum is $sum!"

~

while 循环书写格式:

while CONDITION : do

statement

CONDITION

done

举例如下:输入Q或者q表示成功 然后退出,否则 显示give the Q|q for quiting ,others for donkey!

#!/bin/bash

#written by jobs

#date : 07 - 23

echo "give the Q|q for quiting,others for donkey!"

read A

AA=`echo $A | tr 'a-z' 'A-Z'`

while [ "$AA" != 'Q' ];do

echo "give the Q|q for quiting,others for donkey!"

read A

AA=`echo $A | tr 'a-z' 'A-Z'`

done

~

终于完成了 ,现在是七月二十四号早上两点,又熬夜了……没人逼我,说不清是神马东西使我变的如此努力,或许真的是长大了或许是该毕业了……不过这都无所谓,反正我现在知道,为了目标而努力的人的生活是充实的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值