如何在变量中搜索某段文本?

时间:2016-03-23 15:07:47

标签: linux shell scripting

我正在制作一个脚本,提示用户输入用户名。输入后,脚本使用'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的优秀知识,所以如果有人能解决这个问题并帮助我,我会非常感激。

1 个答案:

答案 0 :(得分:3)

您对报价的使用很奇怪。

if echo "$OUTPUT" | grep -q "$username"

应该有用。

-q使grep安静(并且比重定向更短)。