i++和++i的区别(了解)
对变量的值的影响
Let x=i++ 先赋值,再运算
Let y=j++ 先运算,再赋值
例子:
vim test2.sh
#!/bin/bash
#判断用户输入的是否是数字
read -p "请输入一个数字:" num
while :
do
if [[ $num =~ ^[0-9]+$ ]];then
break
else
read -p "不是数字,请重新输入:" num
fi
done
echo "你输入的数字是: $num"
vim test3.sh
#!/bin/bash
read -p "Please input number: " num
while true
do
if [[ "$num" =~ ^[0-9]+$ ]];then
break
else
read -p "不是数字,请重新输入数值: " num
fi
done
() 子shell中执行
(()) 数值比较,运算C语言
$() `` 命令替换
$(()) 整数运算
{}
${}
[] 条件测试
[[]] 条件测试,支持正则 =~
$[] 整数运算
执行脚本:
五、条件测试
1.文件测试
2.数值测试
3.字符串比较
格式1:test 条件测试
格式2:[条件表达式]
格式3:[[条件表达式]]
======文件测试【操作符 文件或目录】
test -d /home
echo $?
[-e dir|file] 该目录|文件是否存在
[-d dir] 是否有读权限
[-f file] 是否存在,而且是文件
[ -r file ] 是否有读权限
[ -x file ] 是否有执行权限
[ -w file ] 是否有写权限
[ -L file] 是否是链接
例子:
vim test_mysql_back.sh
#!/bin/bash
back_dir=/var/mysql_back
if ! test -d $back_dir;then
mkdir -p $back_dir
fi
echo "开始备份..."
例子:
vim test_yum.sh
#!/bin/bash
if [ $UID -ne 0 ];then
echo ”你没有权限!"
exit
fi
yum -y install nginx
还有一个
#!/bin/bash
if [ $UID -ne 0 ];then
echo “Permission denied”
exit
fi
yum install -y httpd
gt 大于
lt 小于
eq 等于
ne 不等于
ge 大于等于
le 小于等于
=====字符串比较
提示:使用双引号
========================================================
[root@bogon ~]# [ “$USER” == “super” ]; echo KaTeX parse error: Expected 'EOF', got '#' at position 19: … [root@bogon ~]#̲ [ "USER" = “super” ]; echo KaTeX parse error: Expected 'EOF', got '#' at position 19: … [root@bogon ~]#̲ [ -z "bbb" ];echo KaTeX parse error: Expected 'EOF', got '#' at position 19: … [root@bogon ~]#̲ [ -n "bbb" ];echo $?
1
========================================================
案例1:
[root@bogon shell]# vim user_add.sh
#################################################
#usersdd #
#v1.0 by yyy 20/8/2019 #
#################################################
read -p "Please input number: " num
if [[ ! "$num" =~ ^[0-9]+$ ]];then
echo "error number!"
exit
fi
read -p "Please input prefix: " prefix
if [ -z "$prefix" ];then
echo "error prefix"
exit
fi
for i in { `seq $num` }
do
user=$prefix$i
useradd $user
echo "123456" | passwd --stdin $user & >/dev/null
if [ $? -eq 0 ];then
echo "$user is created."
fi
done