如何在Unix命令行上找到用户

时间:2018-02-15 02:27:33

标签: linux bash shell unix command-line

下面的脚本可以按如下方式执行。

. ./ifcommand jaso3

如果用户输入;在这种情况下, jaso3 会登录到系统。它很容易在命令行上执行,但我想编写一个脚本以便更容易,如下所示。

#!/bin/sh

name=$1

check=$(who | grep -e '${name}' | cut -d' ' -f1)

if [${check} = ${1}]
  then
       echo "User found"
else
       echo "User not Found"
fi

当我尝试如上所述运行此代码时,我得到一个空行。我尝试在脚本中进行一些故障排除步骤,以仅隔离行

check=$(who | grep -e '$1' | cut -d' ' -f1)

如果我可以打印,但我不能。我怀疑它与"谁"有关。命令。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

代码有两个问题。对于who管道,您的变量是单引号 - 禁用变量插值。因此,代码为文字"$name"而不是$name中保存的值。改为双引号。

此外,您的if语句需要在[两侧旁边留出空格 - 这是因为它只是一个预期的程序(test)参数。