我正在处理提示用户输入用户名的脚本。一旦输入,脚本使用'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的杰出知识,所以如果有人能解决这个问题并帮助我,我会非常感激。
你会得到“错误”吗?也许你应该把它们展示给我们?还要检查你在'grep'管道上缺少结束'\''的语法。也可以使用http://www.shellcheck.net/获取有关代码的一般有用建议。 –