目录
二.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/1035688151)截取网站访问的协议2)截取网站访问账号信息
写一个脚本,完成以下要求:给定一个用户:1、如果其UID为0,就显示此为管理员;2、否则,就显示其为普通用户;
写一个脚本判断当前系统上是否有用户的默认shell为bash;如果有,就显示有多少个这类用户;否则,就显示没有这类用户;
内容:
1.算数运算命令有哪几种?
2..定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815
1)截取网站访问的协议
2)截取网站访问账号信息
写一个脚本,完成以下要求:
给定一个用户:
1、如果其UID为0,就显示此为管理员;
2、否则,就显示其为普通用户;
写一个脚本
判断当前系统上是否有用户的默认shell为bash;
如果有,就显示有多少个这类用户;否则,就显示没有这类用户;
一.算数运算命令有哪几种?
1. (()): 用于整数运算的常用运算符,效率很高
例:[root@server ~]# echo $((1+2))
3
2. let :用于整数运算,类似于'(())'
[root@server ~]# let num=1+2
[root@server ~]# echo $num
3
3. expr:可用于整数运算,但还有很多其他的额外功能
[root@server ~]# expr 1 + 1 # 注意+左右必须要有空格
2
4.bc: linux下的一个计算器程序(适合整数及小数运算)
[root@server ~]# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1.1+2
3.1
2.5-3.9
-1.4
1.5>4
0
5>3
1
quit # 退出交互模式# 不进入交互模式直接使用,bc需要放在最后
[root@server ~]# echo "scale=3;11/3" | bc
3.666
# scale=3 表示保留运算精度
5. $[]:用于整数运算
[root@server ~]# echo $[2+3] # [] 等价于 (())
5
6.awk: awk既可以用于整数运算,也可以用于小数运算
[root@server ~]# awk 'BEGIN{print 1+1}'
2
7.declare: 定义变量值和属性,-i参数可以用于定义整形变量,做运算。
二.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815
1)截取网站访问的协议
2)截取网站访问账号信息
[root@server ~]# url=https://blog.csdn.net/weixin_45029822/article/details/103568815
[root@server ~]# url1=${url%%:*}
[root@server ~]# echo $url1
https
# %%: 表示从右边开始检索最后一次出现的: 之后删除:右侧的内容,保留左边内容
[root@server ~]# url=https://blog.csdn.net/weixin_45029822/article/details/103568815
[root@server ~]# url1=${url#*//}
[root@server ~]# url2=${url1%/*}
[root@server ~]# url3=$(echo "$url2" | cut -d '/' -f1)
[root@server ~]# echo $url3
blog.csdn.net
写一个脚本,完成以下要求:
给定一个用户:
1、如果其UID为0,就显示此为管理员;
2、否则,就显示其为普通用户;
方法一:此脚本,有些小问题。
给定一个没有的用户,会报错
vim xm.sh
#!/bin/bash
read -p "请输入用户名称:" username
if [ -z $username ]
then
echo '未输入,请重新输入'
elif [ $(id -u $username) -eq 0 ]
then
echo '此为管理员'
else
echo '此为普通用户'
fi
[root@server ~]# bash xm.sh
请输入用户名称:root
此为管理员
[root@server ~]# bash xm.sh
请输入用户名称:fox
此为普通用户
[root@server ~]# bash xm.sh
请输入用户名称:
未输入,请重新输入
方法二:此脚本也有些小问题,可以添加新用户,但是启动脚本直接回车,会报错
vim xm3.sh
#!/bin/bash
read -p '请输入一个账户:' username
# 检查用户是否存在
if id -u "$username" &>/dev/null
then
echo "用户 $username 存在"
if [ $(id -u "$username") -eq 0 ]
then
echo '此为管理员'
else
echo '此为普通用户'
fi
else
echo "用户 $username 不存在"
# 尝试添加用户
useradd "$username"
if [ $? -eq 0 ]
then
echo "用户 $username 已成功添加"
else
echo "添加用户 $username 失败"
fi
fi
~
[root@server ~]# bash xm3.sh
请输入一个账户:root
用户 root 存在
此为管理员
[root@server ~]# bash xm3.sh
请输入一个账户:fox
用户 fox 存在
此为普通用户
[root@server ~]# bash xm3.sh
请输入一个账户:kd
用户 kd 不存在
用户 kd 已成功添加
写一个脚本
判断当前系统上是否有用户的默认shell为bash;
如果有,就显示有多少个这类用户;否则,就显示没有这类用户;
方法一:
vim user.sh
#!/bin/bash
number=$(grep -c '/bin/bash' /etc/passwd)
if [ "$number" -eq 0 ]
then
echo '没有这类用户'
else
echo "有$number个这类账户"
fi
grep '/bin/bash' /etc/passwd
[root@server ~]# bash user.sh
有5个这类账户
root:x:0:0:root:/root:/bin/bash
fox:x:1000:1000::/home/fox:/bin/bash
ls:x:1001:1001::/home/ls:/bin/bash
kk:x:1002:1002::/home/kk:/bin/bash
b:x:1003:1003::/home/b:/bin/bash