标签: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/bash
If ! service httpd status &> /dev/null
then
service httpd start
fi
[root@localhost ~]# cat pinghost.sh
#!/bin/bash
if ping -c 3 -i 0.2 -w 2 $1 &> /dev/null
then
echo "Host $1 is up."
else
echo "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
then
echo "已安装 `rpm -q sysstat`"
else
echo "未安装,尝试自动安装"
RHEL_DIR="/media/cdrom/Server/"
if [ -d $RHEL_DIR ]
then
cd $RHEL_DIR
rpm -ivh sysstat-*.rpm && echo "安装完成。"
else
echo "错误:无法访问光盘目录:$RHEL_DIR"
fi
fi
#[root@localhost ~]# cat gradediv.sh 判断分数所在区间,给出不同的分档结果
#!/bin/bash
read -p "请输入您的分数(0-100):" GRADE
if (( $GRADE >= 85 )) && (( $GRADE <= 100 ))
then
echo "$GRADE 分!优秀"
elif (( $GRADE >= 70 )) && (( $GRADE <= 84 ))
then
echo "$GRADE 分,合格"
else
echo "$GRADE 分?不合格”
fi
[root@localhost ~]# ./gradediv.sh
请输入您的分数(0-100):89
89 分!优秀
#!/bin/bash
name=sxkj
if [[ $1 = $name ]]
then
echo "不能创建$name这个用户"
exit 1
else
useradd $1 && echo 123 | passwd --stdin $1 &> /dev/null
fi
echo "用户$1已经创造完成"
#!/bin/bash
j=$1
for ((i=1; i<=j; i++))
do
touch file$i && echo file $i is ok
done
#!/bin/bash
for i in $(arp | tail -n +2 | tr -s ‘ ‘ | cut -d‘ ‘ -f1)
do
arp -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/bash
echo "准备倒数5秒"
for i in $(seq 5 -1 1)
do
echo -en "$i“
sleep 1
done
echo -e "开始"
#!/bin/bash
echo "准备倒数5秒"
for i in $(seq 5 -1 1)
do
echo -en "$i\b"
sleep 1
done
echo "开始"
[root@localhost ~]# cat uaddfor.sh
#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
do
useradd $UNAME
echo "123456" | passwd --stdin $UNAME
done
[root@localhost ~]# ./uaddfor.sh
[root@localhost ~]# tail -3 /etc/passwd
chenye:x:1011:1011::/home/chenye:/bin/bash
dengchao:x:1012:1012::/home/dengchao:/bin/bash
zhangjie:x:1013:1013::/home/zhangjie:/bin/bash
#!/bin/bash
for i in $@ #可替换成for i
do
useradd $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 ok
user bb is ok
user cc is ok
user dd is ok
[root@localhost ~]# cat /root/ipadds.txt
192.168.4.11
192.168.4.110
192.168.4.120
[root@localhost ~]# cat chkhosts.sh
#!/bin/bash
HLIST=$(cat /root/ipadds.txt) #从列表文件读取IP地址
for IP in $HLIST
do
ping -c 2 -i 0.2 -w 1 $IP &> /dev/null
if (($?==0)) ; then
echo "Host $IP is up."
else
echo "Host $IP is down." #嵌套if语句判断连通性
fi
done
[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/bash
for i in `seq 6`
do
if ((i % 2 == 0 ))
then
break;
fi
echo $i;
done
#!/bin/bash
for i in `seq 6`
do
if ((i % 2 == 0 ))
then
continue;
fi
echo $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 files
bb 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
请输入需要删除的用户名前缀: r
root是系统用户不能删除
rpc是系统用户不能删除
rtkit是系统用户不能删除
rpcuser是系统用户不能删除
用户rr1已经被成功删除
用户rr2已经被成功删除
一共删除的用户数:2个
标签:sla inpu write random 一个用户 size 循环语句 逻辑 效果
原文地址:https://www.cnblogs.com/qluzzh/p/10306301.html