shell基础

本文介绍如何使用Shell脚本实现用户的添加,并通过逻辑判断确保操作的准确性。此外,还提供了一种方法用于统计系统中的总用户数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、添加用户

1.

#!/bin/bash

#井号是注释,上面第一行专业术语叫魔数,可以看做一个shell声明
#
#$1是位置变量,是接受执行shell传进来的参数的
useradd $1

#passwd在bash中执行时会在中间停止,让用户进行输入密码

#为了防止shell停止使用参数--stdin,让passwd介绍标准输入,echo是标准输出。

#&> 是全部重定向(即正确错误信息都重定向)  /dev/null 为数据黑洞

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

echo "add user $1 success!"


2.上面的代码不够严谨,使用逻辑判断来完善

#!/bin/bash

[ ! $# -eq 1 ] && echo "args error!" && exit 3
id $1 &>/dev/null && echo "user $1 exit!" && exit 1
id $1 &>/dev/null || useradd $1
echo $1 | passwd --stdin $1 &> /dev/null && echo "add user $1 success!"

[ expression ]注意两头有两个空格。[ ]的形式多用在比较的时候!

-eq是等于的意思


逻辑判断命令的状态时使用种&&  || 的方式很常见。这两种命令最好不要混用。

&&:若前一个执行成功就继续执行第二个,若前一个失败就不在执行后面的。

||:若前一个成功就不再执行后面的,若前一个失败就再执行后面的

id $1  :查看名为$1的用户

exit 1 :退出shell,不一定为1,非零都表示退出shell


二、显示系统一共多少用户

1.

#!/bin/bash
count=`wc -l /etc/passwd | awk '{print $1}'`
echo totol user: $count


注意:变量赋值时等于号前后别放空格

awk{print $1}  中print是打印指定内容,此处的$1指的是每行的第一个字符

反引号:作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值