LINUX.ORG.RU

Не работает условие в bash

 ,


0

3

Помогите исправить условие, которое не срабатывает.

Конкретно слово «БОЛЬШЕ 5» должно выдавать в случае, если >5, но оно выдает в любом случае.

Одной строкой - так нужно.

read date2 <"/Games/app_time" && diff=$(($(date +"%s")-$date2)) && echo $diff && if [ "$diff" > 5 ]; then echo 'БОЛЬШЕ 5'; fi && echo $(date +"%s") > "/Games/app_time"
★★

man bash

[ $foo -gt $bar ]
[ $foo -lt $bar ]

joy4eg ★★★★★
()

if [[ «$diff» > 5 ]]; then ...; fi

mix_mix ★★★★★
()

в говне не копаюсь. Пиши по-человечески, руками, а не жопой.

emulek
()

Одной строкой - так нужно.

сначала напиши нормально, потом свернёшь в однострок.

emulek
()
Ответ на: комментарий от emulek

Осталось выяснить, при чём тут сам баш:

$ which [
/usr/bin/[
$ /usr/bin/[ 5 -gt 4 ] && echo ok || echo not ok
ok
$ /usr/bin/[ 3 -gt 4 ] && echo ok || echo not ok
not ok
post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Осталось выяснить, при чём тут сам баш

$ help [
[: [ arg... ]
    Evaluate conditional expression.
    
    This is a synonym for the "test" builtin, but the last argument must
    be a literal `]', to match the opening `['.
emulek
()
Ответ на: комментарий от emulek

А теперь свяжи воедино [, [[, зоопарк юниксов, а также то, почему, например, в Midnight Commander ко всему этому очень строго относятся.

post-factum ★★★★★
()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от post-factum

А теперь свяжи воедино [

ты про встроенную в bash? Или всё-же внешнюю утилиту?

зоопарк юниксов

при чём тут «зоопарк»? Тема у нас про bash, а не про зоопарк.

почему, например, в Midnight Commander ко всему этому очень строго относятся.

Дмитрий Анатольевич Медведев одобрил?

emulek
()
diff=$(($(date +"%s")-$date2))

Ну и че, оно склеилось через минус, не выполнилось и сравнивается с числом? Выхлоп-то покажи, желательно с set -x.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.