学习笔记-5.3 shell编程2

简介:

5.3 shell编程2


条件判断:

   如果用户不存在

       添加用户,给密码并显示添加成功

   否则

       显示如果已经存在,没有添加


bash中如何实现条件判断?

条件测试类型:

    整数测试

    字符测试

    文件测试


条件测试的表达式:

    [ expressopm ] 前后一定有空格

    ` expressopm `

    test expression


整数比较:

    -eq:测试两个整数是否相等;相等为真0比如 $A -eq $B

    -ne:测试两个整数是否不等;不等,为真0,相等,假

    -gt:测试一个数是否大于另一个数:大于,为真

    -lt:测试一个数是否小于另一个数

    -ge:大于或等于

    -le:小于或等于


命令间的逻辑关系:

   逻辑与: &&

       第一个条件为假时,第二条件不用再判断,最终结果已经有:

       第一个条件为真时,第二条件必须得判断

   逻辑或: ||


id user1 &> /dev/null && echo "Hello,student."

如果用户user6不存在,就添加用户user6

! id user6 && useradd user6

id user6 || useradd user6


变量名称:只能包含字母、数字和下划线,并且不能以数字开头,不应该跟

          系统中已有的环境变量重名

          最好做到见名知义

nano second.sh

#!/bin/bash

LINES = 'wc -l /etc/inittab'

#echo $LINES


FINLINES = 'echo $LINES | cut -d ' ' -f1'

#echo $FINLINES


[ $FINLINES -gt 100 ] && echo "/etc/inittab is a big file." 

 ||  echo "/etc/inittab is a small file." 


如果用户存在,就显示用户已存在;否则,就添加此用户:

 id user1 && echo "user1 exists." || useradd user1

如果用户不存在,就添加:否则,显示其已经存在

! id user1 && useradd user1 ||  echo "user1 exists."

如果用户不存在,添加并且给密码,否则,显示其已经存在

! id user1 && useradd user1 && echo "user1" | passwd --stdin user1 ||

  echo "user1 exists."


练习,写一个脚本,完成以下要求:

1 添加3个用户user1,user2,user3;但要先判断用户是否存在,

  不存在而后再添加

2 添加完成后,显示一共添加了几个用户:当然,不能包括因为事先

  存在而没有添加的

3 最后显示当前系统上共有多少个用户

 nano adduser.sh

#!/bin/bash

! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd 

  --stdin user1 &> /dev/null || echo "user1 exists."

! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd 

  --stdin user2 &> /dev/null || echo "user2 exists."

! id user3 &> /dev/null && useradd user3 && echo "user3" | passwd 

  --stdin user3 &> /dev/null || echo "user3 exists."


USERS = 'wc -l /etc/passwd | cut -d: -f1'

echo "$USERS users."


如果 UID为0:那么

   显示为管理员

否则

   显示为普通用户


NAME = user16

USERID = `id -u $NAME` (~下的反引号) 命令引用表示命令的执行结果

if[ $USERID -eq 0 ];then

  echo "Admin"

else

  echo "common user."

fi

反引号引用表示命令的执行结果

没有反引号表示命令的执行状态(是否成功)


if id $NAME;then


练习 写一个脚本,完成以下要求:

给定一个用户:

  1 如果其UID为0,就显示此为管理员

  2 否则,就显示其为普通用户

nano third.sh

#!/bin/bash

#

NAME = user1


USERID =`id -u $NAME`

[ $USERID -eq 0 ] && echo "Admin" || echo "Common user."


条件判断,控制结构:

单分支if语句

if 判断条件;then (then写下一行,分号可以省略)

   statement1

   statement2

   ...

fi


双分支的if语句:

if 判断条件;then

   statement1

   statement2

   ...

else

   statement3

   statement4 

   ...

fi


nano tt.sh

#!/bin/bash

#

NAME = user1

if id $NAME &> /dev/null;then

   echo "$NAME EXISTS."

else

   useradd $NAME

   echo $NAME | passwd --stdin  $NAME &> /dev/null

   echo "Add $NAME finished."

fi



练习:写一个脚本,完成以下任务

1 使用一个变量保存一个用户名

2 删除此变量中的用户,且一并删除其家目录

3 显示“用户删除完成”类的信息













本文转自飞行萌51CTO博客,原文链接:http://blog.51cto.com/8527508/1940641 ,如需转载请自行联系原作者

相关文章
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
106 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
45 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
77 12
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
存储 Java Shell
shell学习笔记(详细整理)
这篇文章是一份详细的Shell学习笔记,涵盖了Shell的基础知识、脚本编写、变量、运算符、条件判断、流程控制、函数以及常用Shell工具的使用。
48 1
|
3月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
48 12