简单脚本编写(shell)

目录

一.算数运算命令有哪几种?

二.定义变量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

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值