编写一个脚本login.sh,要求从键盘上输入用户名,判断系统是否存在该用户,并给出提示:(思路如下) A.从键盘上输入用户名 B.使用管道,先读取/etc/passwd,然后用grep筛选如上用户名,并将筛选结果赋值给result C.判断result是否为空,如果为空,输出用户名is not exist!,否则,输出用户名 is exist!
时间: 2023-12-25 12:02:55 浏览: 35
可以尝试使用以下脚本实现:
```bash
#!/bin/bash
# 从键盘上输入用户名
read -p "请输入用户名:" username
# 读取/etc/passwd并筛选出该用户
result=$(cat /etc/passwd | grep "^$username:")
# 判断筛选结果是否为空
if [ -z "$result" ]; then
echo "用户名 $username 不存在!"
else
echo "用户名 $username 存在!"
fi
```
脚本的执行流程如下:
1. 首先从键盘上读取用户名。
2. 然后使用管道,将/etc/passwd中的所有内容传递给grep命令,并使用正则表达式筛选出符合用户名的行,将结果赋值给变量$result。
3. 判断$result是否为空,如果为空,则输出该用户不存在的提示信息,否则输出该用户存在的提示信息。
注意,脚本需要以可执行权限运行,可以使用chmod命令添加可执行权限:
```
chmod +x login.sh
```
然后可以直接执行脚本:
```
./login.sh
```
相关问题
编写一个sumint.sh脚本,提示用户输入一个小于100的整数,并计算从1到该数之间的所有整数的和
好的,以下是sumint.sh脚本的内容:
```bash
#!/bin/bash
read -p "请输入一个小于100的整数: " num
if [ $num -ge 100 ]; then
echo "输入的数字不符合要求!"
else
sum=0
for (( i=1; i<=$num; i++ ))
do
sum=$((sum+i))
done
echo "从1到$num之间的所有整数的和为:$sum"
fi
```
使用方法:
1. 打开终端
2. 进入存放sumint.sh脚本的目录
3. 输入命令:`chmod +x sumint.sh` 以赋予脚本执行权限
4. 输入命令:`./sumint.sh` 执行脚本
5. 按照提示输入小于100的整数即可看到结果
用shell脚本实现:要求用户输入一个用户名,查询系统中是否存在该用户,若有打印用户存在,若不存在添加该用户
可以回答这个问题。以下是一个示例的shell脚本:
```
#!/bin/bash
echo "请输入用户名:"
read username
if id "$username" >/dev/null 2>&1; then
echo "用户存在"
else
echo "用户不存在,正在添加用户..."
sudo useradd "$username"
echo "用户添加成功"
fi
```
这个脚本会提示用户输入一个用户名,然后查询系统中是否存在该用户。如果存在,就打印“用户存在”,否则就添加该用户并打印“用户添加成功”。注意,这个脚本需要以root权限运行才能添加用户。