标签:sla inpu write random 一个用户 size 循环语句 逻辑 效果
[root@localhost ~]# [ -d /etc/vsftpd ]
[root@localhost ~]# echo $?
0 //返回0表示条件成立
[root@localhost ~]# [ -d /etc/hosts ]
[root@localhost ~]# echo $?
1 //返回1表示条件不成立
[root@localhost ~]# [ -e /media/cdrom ] && echo "YES"
YES //逻辑与,“而且”的意思
[root@localhost ~]# who | wc -l
7[root@localhost ~]# [ $(who | wc -l) -gt 5 ] && echo "Too many." // 用户数是否 > 5
Too many.
[root@localhost ~]# [ $(who | wc -l) -ge 10 ] && echo "> = 10." //用户数是否 >= 10
[root@localhost ~]# FreeCC=$(free -m | grep Mem: | tr -s ‘ ’ |cut -d‘ ’ -f4)
[root@localhost ~]# [ $FreeCC -lt 1024 ] && echo ${FreeCC}MB //空闲内存是否 < 1024MB
864MB
[root@localhost ~]# (( 10+2 > 10-2 )) && echo ok || echo no
ok[root@localhost ~]# a=10
[root@localhost ~]# ((a>20)) && echo ok || echo no //变量加不加$都可以
no[root@localhost ~]# ((a<20)) && echo ok || echo no
ok[root@localhost ~]# ((a==20)) && echo ok || echo no //注意这里是两个=,一个=是赋值
no[root@localhost ~]# ((a!=20)) && echo ok || echo no ///不等于只能用一个=
ok[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# [ $LANG != "en.US" ] && echo "Not en.US" //测试当前语言环境
Not en.US
[root@localhost ~]# read -p “是否覆盖现有文件(yes/no)?" ACK
是否覆盖现有文件(yes/no)?yes
[root@localhost ~]# [ $ACK = "yes" ] && echo "覆盖" //测试读入的字符串是否为 yes
覆盖[root@localhost ~]# a=123
[root@localhost ~]# [ -z $a ] && echo ok || echo no
no[root@localhost ~]# a=
[root@localhost ~]# [ -z $a ] && echo ok || echo no
ok[root@localhost ~]# [ -n $a ] && echo ok || echo no
ok[root@localhost ~]# [ -n "$a" ] && echo ok || echo no //和预计结果不一致
no[root@localhost ~]# a="abc 123"
[root@localhost ~]# [ -z $a ] && echo ok || echo no
-bash: [: abc: binary operator expected //语法错误
no[root@localhost ~]# [ -z "$a" ] && echo ok || echo no
no[root@localhost ~]# [ "$a" = "abc 123" ] && echo ok || echo no
ok[root@localhost ~]# a="abc 123"
[root@localhost ~]# [ $a = "abc 123" ] && echo ok || echo no
-bash: [: too many arguments
no[root@localhost ~]# [[ $a = "abc 123" ]] && echo ok || echo no
ok[root@localhost ~]# cat test.sh
#!/bin/bash[[ $1 = ??? ]] && echo ok || echo no //匹配字符是任意三个字符的
[root@localhost ~]# ./test.sh ab
no[root@localhost ~]# ./test.sh abc
ok[root@localhost ~]# cat test.sh
#!/bin/bash
[[ $1 = a* ]] && echo ok || echo no //匹配字符是a开头的
[root@localhost ~]# ./test.sh bbba
no[root@localhost ~]# ./test.sh abb
ok[root@localhost ~]# cat test.sh
read -s -p "please input password: " pass
[[ $pass = ???* ]] && echo passwd is ok || echo passwd too short
//判断密码的长度至少要3位-a或&&:逻辑与,“而且”的意思
前后两个表达式都成立时整个测试结果才为真,否则为假
-o或||:逻辑或,“或者”的意思
操作符两边至少一个为真时,结果为真,否则结果为假
!:逻辑否
[root@localhost ~]# [ -d /etc/passwd -a -f /etc/fstab ] && echo ok || echo no
no[root@localhost ~]# [ -d /etc/passwd -o -f /etc/fstab ] && echo ok || echo no
ok[root@localhost ~]# [ ! -d /etc/passwd ] && echo ok || echo no
ok[root@localhost ~]# (( ! 10 > 5 )) && echo ok || echo no
no[root@localhost ~]# cat test.sh
#!/bin/bashIf ! service httpd status &> /dev/null
then service httpd startfi[root@localhost ~]# cat pinghost.sh
#!/bin/bashif ping -c 3 -i 0.2 -w 2 $1 &> /dev/null
thenecho "Host $1 is up."
elseecho "Host $1 is down."
fi[root@localhost ~]# ./pinghost.sh 192.168.4.11
Host 192.168.4.11 is up.
[root@localhost ~]# ./pinghost.sh 192.168.4.13
Host 192.168.4.13 is down.
#!/bin/bash
if rpm -q sysstat &> /dev/null
thenecho "已安装 `rpm -q sysstat`"
elseecho "未安装,尝试自动安装"
RHEL_DIR="/media/cdrom/Server/"
if [ -d $RHEL_DIR ]
thencd $RHEL_DIR
rpm -ivh sysstat-*.rpm && echo "安装完成。"
elseecho "错误:无法访问光盘目录:$RHEL_DIR"
fifi#[root@localhost ~]# cat gradediv.sh 判断分数所在区间,给出不同的分档结果#!/bin/bashread -p "请输入您的分数(0-100):" GRADE
if (( $GRADE >= 85 )) && (( $GRADE <= 100 ))
thenecho "$GRADE 分!优秀"
elif (( $GRADE >= 70 )) && (( $GRADE <= 84 ))
thenecho "$GRADE 分,合格"
elseecho "$GRADE 分?不合格”
fi[root@localhost ~]# ./gradediv.sh
请输入您的分数(0-100):8989 分!优秀#!/bin/bashname=sxkj
if [[ $1 = $name ]]
thenecho "不能创建$name这个用户"
exit 1
elseuseradd $1 && echo 123 | passwd --stdin $1 &> /dev/null
fiecho "用户$1已经创造完成"
#!/bin/bashj=$1
for ((i=1; i<=j; i++))
dotouch file$i && echo file $i is ok
done#!/bin/bashfor i in $(arp | tail -n +2 | tr -s ‘ ‘ | cut -d‘ ‘ -f1)
doarp -d $i
done[root@localhost ~]# for i in {0..9}; do echo $RANDOM;done
[root@localhost ~]# for i in $( seq 10); do echo $RANDOM;done
#!/bin/bashecho "准备倒数5秒"
for i in $(seq 5 -1 1)
doecho -en "$i“
sleep 1
doneecho -e "开始"
#!/bin/bashecho "准备倒数5秒"
for i in $(seq 5 -1 1)
doecho -en "$i\b"
sleep 1
doneecho "开始"
[root@localhost ~]# cat uaddfor.sh
#!/bin/bashULIST=$(cat /root/users.txt)
for UNAME in $ULIST
douseradd $UNAME
echo "123456" | passwd --stdin $UNAME
done[root@localhost ~]# ./uaddfor.sh
[root@localhost ~]# tail -3 /etc/passwd
chenye:x:1011:1011::/home/chenye:/bin/bashdengchao:x:1012:1012::/home/dengchao:/bin/bashzhangjie:x:1013:1013::/home/zhangjie:/bin/bash#!/bin/bashfor i in $@ #可替换成for i
douseradd $i && echo user $i is ok
echo 123456 | passwd --stdin $i &> /dev/null
done[root@localhost ~]# ./myuseradd.sh aa bb cc dd
user aa is okuser bb is okuser cc is okuser dd is ok
[root@localhost ~]# cat /root/ipadds.txt
192.168.4.11192.168.4.110192.168.4.120[root@localhost ~]# cat chkhosts.sh
#!/bin/bashHLIST=$(cat /root/ipadds.txt) #从列表文件读取IP地址
for IP in $HLIST
doping -c 2 -i 0.2 -w 1 $IP &> /dev/null
if (($?==0)) ; then
echo "Host $IP is up."
elseecho "Host $IP is down." #嵌套if语句判断连通性
fidone[root@localhost ~]# ./chkhosts.sh
Host 192.168.4.11 is up.Host 192.168.4.110 is down.Host 192.168.4.120 is up.#!/bin/bashfor i in `seq 6`
do if ((i % 2 == 0 ))
thenbreak;
fiecho $i;
done#!/bin/bashfor i in `seq 6`
doif ((i % 2 == 0 ))
thencontinue;
fiecho $i;
done[root@localhost ~]# test.sh
警告: vsftpd 服务没有启动,准备启动为 vsftpd 启动 vsftpd: [确定]
[root@localhost ~]# test.sh
监听地址: 0.0.0.0:21进程PID: 10478[root@localhost ~]# yum remove vsftpd
[root@localhost ~]# test.sh
vsftpd服务不存在[root@localhost test]# ./test.sh 78
成绩合格[root@localhost test]# ./test.sh 93
成绩优秀[root@localhost test]# ./test.sh 101
输入错误,请输入0-100间的整数[root@localhost test]# ./test.sh 60
及格万岁[root@localhost test]# ./test.sh 31
你需要补考[root@localhost test]# bash lucky.sh
欢迎来到我是歌手第2季,还有3位参赛歌手,请按任意键开始选择****这次为大家献唱的是谁呢?我们一起倒数3秒钟****3 2 1 会是谁呢?有请歌手‘丝丝‘登台还有位2位歌手,下次又会是谁呢,O(∩_∩)O哈哈~
[root@localhost test3]# bash lucky.sh
欢迎来到我是歌手第2季,还有2位参赛歌手,请按任意键开始选择****这次为大家献唱的是谁呢?我们一起倒数3秒钟****3 2 1 会是谁呢?有请歌手‘龙龙‘登台只剩下1位压轴歌手啦,万众瞩目的一天就要来到了,(*^__^*) 嘻嘻……
[root@localhost test3]# bash lucky.sh
没得选了,就是有歌坛赵本山之称的‘安安‘啦,我是歌手下季将重新开始哦[root@localhost ~]# ./test.sh 11
脚本有1个参数$1 is 11
[root@localhost ~]# ./test.sh aa bb
脚本有2个参数$1 is aa
$2 is bb
[root@localhost ~]# ./test.sh aa bb cc
脚本有3个参数$1 is aa
$2 is bb
$3 is cc
[root@localhost ~]# ./test.sh
脚本没有接参数[root@localhost ~]# ./test.sh
aa have 41 filesbb have 110 files[root@localhost ~]# ./test.sh
all png files total size is 2540k[root@servera ~]# bash add.sh
请输入用户名的前缀: stu请输入用户的数目: 15最多只能同时新建10个用户[root@servera ~]# bash add.sh
请输入用户名的前缀: sxkj请输入用户的数目: 2用户sxkj1已经创建成功用户sxkj2已经创建成功一共创建的用户数:2个[root@servera ~]# add.sh
请输入用户名的前缀: rr请输入用户的数目: 2用户rr1已经创建成功用户rr2已经创建成功一共创建的用户数:2个[root@servera ~]# del.sh
请输入需要删除的用户名前缀:请输入合法的用户名前缀[root@servera ~]# del.sh
请输入需要删除的用户名前缀:请输入合法的用户名前缀[root@servera ~]# del.sh
请输入需要删除的用户名前缀: rroot是系统用户不能删除rpc是系统用户不能删除rtkit是系统用户不能删除rpcuser是系统用户不能删除用户rr1已经被成功删除用户rr2已经被成功删除一共删除的用户数:2个标签:sla inpu write random 一个用户 size 循环语句 逻辑 效果
原文地址:https://www.cnblogs.com/qluzzh/p/10306301.html