если, elif, else заявление выдает в Bash
Я не могу понять, в чем проблема со следующим if
заявление в отношении elif
и then
. Имейте в виду printf
все еще находится в разработке, я просто не смог проверить его еще в заявлении, поэтому, скорее всего, ошибаюсь.
ошибка, которую я получаю:
./timezone_string.sh: line 14: syntax error near unexpected token `then'
./timezone_string.sh: line 14: `then'
и утверждение таково.
if [ "$seconds" -eq 0 ];then
$timezone_string="Z"
elif[ "$seconds" -gt 0 ]
then
$timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60`
else
echo "Unknown parameter"
fi
3 ответов
между elif
и [
:
elif[ "$seconds" -gt 0 ]
должно быть
elif [ "$seconds" -gt 0 ]
как я вижу, этот вопрос получает много просмотров, важно указать, что синтаксис, чтобы следовать:
if [ conditions ]
# ^ ^ ^
означает, что пробелы необходимы вокруг скобок. Иначе ничего не получится. Это потому что is команды.
у вас есть некоторые проблемы синтаксиса скрипта. Вот исправленная версия:
#!/bin/bash
if [ "$seconds" -eq 0 ]; then
timezone_string="Z"
elif [ "$seconds" -gt 0 ]; then
timezone_string=$(printf "%02d:%02d" $((seconds/3600)) $(((seconds / 60) % 60)))
else
echo "Unknown parameter"
fi