下面的脚本可以按如下方式执行。
. ./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)
如果我可以打印,但我不能。我怀疑它与"谁"有关。命令。任何建议都表示赞赏。
答案 0 :(得分:1)
代码有两个问题。对于who
管道,您的变量是单引号 - 禁用变量插值。因此,代码为文字"$name"
而不是$name
中保存的值。改为双引号。
此外,您的if
语句需要在[
的两侧旁边留出空格 - 这是因为它只是一个预期的程序(test
)参数。