我正在制作一个脚本,提示用户输入用户名。输入后,脚本使用'rwho'命令获取登录到网络的用户列表。它应该使用rwho命令的结果交叉检查他们输入的文本(他们的用户名)。
如果找到匹配,那么它会显示一条消息,如果没有,那么它也会让用户知道这一点。
这是脚本和我到目前为止的尝试:
#!/bin/sh
#
# User network checking script
#
# Using rwho command to get user list
OUTPUT="$(rwho)"
echo "${OUTPUT}"
# Prompt for username
echo "Please enter your username: "
read username
# Input validation
if [ -z "$username"]
then
echo "No username supplied"
echo "Please enter your username: "
read username
fi
# Search for user
if `echo ${OUTPUT} | grep "${username}" 1>/dev/null 2>&1'
then
echo "$username is logged in."
else
echo "$username is not present."
fi
我一直在搜索用户部分时遇到错误。我没有Linux的优秀知识,所以如果有人能解决这个问题并帮助我,我会非常感激。
答案 0 :(得分:3)
您对报价的使用很奇怪。
if echo "$OUTPUT" | grep -q "$username"
应该有用。
-q
使grep
安静(并且比重定向更短)。