Мне нужно научить себя скрипту bash. Я читаю эту книгу, и она имеет следующий код:Начиная с bash scripting
#!/bin/bash
# hello.sh
# This is my first shell script!
declare -rx SCRIPT="hello.sh"
declare -rx who="/usr/bin/who"
declare -rx sync="/bin/sync"
declare -rx wc="/usr/bin/wc"
# sanity checks
if test -z "$BASH" ; then
printf "$SCRIPT:$LINENO: please run this script with the BASH shell\n" >&2
exit 192
fi
if test ! -x "$who" ; then
printf "$SCRIPT:$LINENO: The command $who is not available - aborting\n" >&2
exit 192
fi
if test ! -x "$sync" ; then
printf "$SCRIPT:$LINENO: the command $sync is not available - aborting\n">&2
exit 192
fi
if test ! -x "$wc" ; then
printf "$SCRIPT:$LINENO: the command $wc is not available - aborting\n" >&2
exit 192
fi
USERS = `$who | $wc -l`
if [ $USERS -eq 0 ] ; then
$sync
fi
exit 0
Когда я бегу, я получаю следующее сообщение об ошибке:
hello.sh: line 32: USERS: command not found
hello.sh: line 33: [: -eq: unary operator expected
Я действительно не знаю, что я делаю неправильно , Разве мне не разрешено назначать ПОЛЬЗОВАТЕЛЯ для вывода командной строки таким образом? Если я запустил эту строку в командной строке, это тоже не сработает. Есть идеи?
Благодаря
Есть ли конкретная причина, вы должны научиться Баш? Каждый раз, когда я начинаю с небольшого сценария bash, думая, что это слишком просто сделать в Python, я в конечном итоге конвертирую его в Python позже. – robert
Это очень плохой скрипт качества. Отличным ресурсом является [Bash Guide] (http://mywiki.wooledge.org/BashGuide) вместе с [Bash Pitfalls] (http://mywiki.wooledge.org/BashPitfalls) и [FAQ по Bash] (http: //mywiki.wooledge.org/BashFAQ). –
Я проверю это руководство. Благодарю. Мне нужно учиться баху для моей стажировки. Мне жаль, что это был просто python, но, видимо, инструменты, которые я буду использовать, требуют bash. – de1337ed