Я относительно новичок в программировании терминала. Я пытаюсь запустить условие IF
в цикле FOR
. (Команда должна выполняться cronjob)
for i in {1..5}; do echo $i; if [ $i>3 ]; then echo $i; fi; done
Я хочу, чтобы она выводилась как
1
2
3
4
4
5
5
Но реальный вывод этой команды -
1
1
2
2
3
3
4
4
5
5
Может ли кто-нибудь помочь мне указать на ошибку?
Спасибо!
[
скобки являются псевдонимом для test
управляйте и существует нет >
войдите в систему регулярная тестовая команда. Использовать [ $i -gt 3 ]
$ for i in {1..5}; do echo $i; if [ $i -gt 3 ] ; then echo $i; fi; done
1
2
3
4
4
5
5
Вы могли использовать арифметическое расширение удара (())
также
$ for i in {1..5}; do echo $i; if (( $i>3 )) ; then echo $i; fi; done
1
2
3
4
4
5
5
Вы могли использовать expr
также, но я гарантирую 100%, к которым Вы продолжите забывать \
выйдите <
и >
поет, а также вывод перенаправления к /dev/null
:
$> if expr 3 \> 2 > /dev/null ; then echo YES; else echo NO ; fi
YES
$> if expr 3 \< 2 > /dev/null ; then echo YES; else echo NO ; fi
NO
Редактирование Вашей команды к этому должно работать:
for i in {1..5}; do echo $i; if [[ $i -gt 3 ]]; then echo $i; fi; done
Как дополнительное улучшение, если эта команда будет только выполнена в ударе, Это стоит использовать [[
вместо [
. Это делает почти такую же вещь, но имеет некоторых хороших дополнительная функциональность .
sudo apt install python3-notify2
сначала. Добавленный, что теперь, благодарит обратить внимание. – Byte Commander♦ 1 October 2017 в 23:59