了解bash代码中的输出的问题

时间:2019-05-24 13:14:43

标签: bash sh

我在bash中有以下代码:

#!/bin/sh
w=`who | grep $1`
if [ -z "$w" ]; then
echo "$1 ... ";
fi

您能帮我理解这段代码的输出吗? 我可以看到它将显示命令行中的给定参数($ 1,$ 2 ...)

但是我不太明白这两行:

w=`who | grep $1`
if [ -z "$w" ]; then

由于我找不到太多信息,您能为我提供一些帮助吗

1 个答案:

答案 0 :(得分:1)

给我看一个脚本,检查您作为参数传递给脚本的用户名是否已登录到系统上。

例如,如果您使用./check.sh nonexistinguser进行调用,它将打印nonexistinguser ...

说明:

w=`who | grep $1`

执行who,显示登录的人,然后grep将传递给脚本的任何参数($1)的结果存储在名为{{ 1}};看看w

上的文档here
-z

如果if [ -z "$w" ]; then 的长度为零,则执行if的正文。