linux双括号for循环,菜鸟学Linux 第018篇笔记 字符测试&&for循环&&脚本

菜鸟学Linux 第018篇笔记 字符测试&&for循环

字符测试:

==测试字符串是否相等 等为真,不等为假

A=helloB=hi

[[ $A == $B ]]

!=测试字符串是否不等 不等为真,等为假

A=helloB=hello

[[ $A == $B ]]

>

<

单目操作符

-n测试字符串是否为空,空则真,不空则假。

-s测试字符串是否不空,不空为真,空为假。

循环

for

while

until

for循环

for 变量 in 列表; do

循环体

done

e.g. for I in 1 2 3 4 5 6 7 8 9 10; do

加法运算

done

如何生成列表

整数列表

{1..100} 1-100

seq  print a sequence of numbers

e.g. `seq 10`

SYNOPSIS

seq [OPTION]... LAST

seq [OPTION]... FIRST LAST

seq [OPTION]... FIRST INCREMENT(增量,步进) LAST

declare -i 声名变量为整数

小练习

script1

测试一个用户的用户ID和基本组ID是否一致;

script2

传递一个字符给脚本,如果参数为Q则退出脚本,否则就显示用户的参数;

script3

传递三个参数给脚本,第一个为整数,第二个为算术运算符,第三个为整数,

将计算结果显示出来,要求保留两位小数,形如 ./calc.sh 5 / 2

script4

计算1..100的和

script5

向默认shell的bash的用户问声好,并显示该用户的家目录。

script6

给一个参数add则

添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加。

给一个参数del则

删除10个用户user1到user10,但要求只有用户存在的情况下才能删除。

key:

script1

#!/bin/bash

#

if [ `id -nu $1` == `id -ng $1` ]; then

echo "Yi yang."

else

echo "Bu yiyang."

fi

script2

#!/bin/bash

#

if [ $1 = 'Q' ];then

exit 5

else

echo $1

fi

script3

#!/bin/bash

#

#echo "scale=2;$1$2$3;" | bc

bc <<< "scale=2;$1$2$3;"

script4

#!/bin/bash

#

declare -i SUM=0

for I in {1..100}; do

let SUM=$[$SUM+$I]

done

echo "1 + 100 = $SUM"

script5

#!/bin/bash

#

declare -i S=0

for I in `grep "bash\>" /etc/passwd | cut -d: -f1`; do

let S=S+1

HOOOM=`grep "bash\>" /etc/passwd | cut -d: -f6 | head -n $S | tail -1`

echo "hello, $I. your home directory is $HOOOM"

done

script6

#!/bin/bash

#

if [[ $1 = "add" ]];then

for I in `seq 10`; do

! id user$I &> /dev/null && useradd user$I

done

echo "The user1-10 is added."

elif [[ $1 = "del" ]];then

for L in `seq 10`; do

id user$L &> /dev/null && userdel -r user$L

done

echo "Delete user1-10 is complete."

else

echo "No such parameter"

exit 10

fi

编辑脚本错误总结:

1.if语句后边的条件一定要和if之间空一格;

2.字符测试时要双括号如[[ $1 == "abc" ]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值