Проблема с пониманием вывода в коде bash - PullRequest
0 голосов
/ 24 мая 2019

У меня следующий код в 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 Ответ

1 голос
/ 24 мая 2019

Мне кажется, что скрипт проверяет, зарегистрировано ли в системе имя пользователя, которое вы передаете в качестве параметра скрипту.

Например, если вы позвоните по номеру ./check.sh nonexistinguser, будет напечатано nonexistinguser ....

Пояснение:

w=`who | grep $1`

Выполнить who, который отображает, кто вошел в систему, затем grep результат для любого параметра, который вы передали в сценарий ($1), сохраните результат в переменной с именем w; посмотрите здесь для документов на -z

if [ -z "$w" ]; then

Если "$w" имеет нулевую длину, выполнить тело if.

...