Сценарий Unix: использование даты и использование для

MinuteNow =date +%M;

for ((i=2;i<=57;i+=5))
do
        if [ "$MinuteNow" == "$i" ]; then
                *************
        fi
done

Проблема для 2 и 7, вывод команды даты равняется 02 и 07, но переменный $i равняется 2 и 7... Я пытался добавить условие изменить только эти 2, но оно прослушивало цикл...

Можно ли дать мне подсказку?

0
задан 06.03.2013, 04:47

4 ответа

В Bash необходимо будет вынудить строку базироваться 10:

if (( 10#$MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context

В Оболочке Bourne (sh):

if [ $MinuteNow -eq $i ]

В zsh или ksh93:

if (( MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context
1
ответ дан 24.11.2019, 03:37

Используйте "-eq" для сравнения чисел, затем Вы, привычка имеет это проблемы:

if [ "$MinuteNow" -eq "$i" ]; then

должен сделать это.

(существует много других возможностей, будучи $ {MinuteNow#0} другой простой, но я вещь с помощью правильного оператора-eq вместо == являюсь лучшим).

2
ответ дан 24.11.2019, 03:37

В bash, использование:

(( $MinuteNow == $i ))

как в:

if (( $MinuteNow == $i )); then

Если sh совместимость необходима, используйте:

[ "$MinuteNow" -eq "$i" ]
0
ответ дан 24.11.2019, 03:37

Попробовать

 [ $MinuteNow -eq $i ]

Посмотрите тест человека для большего количества информации.

1
ответ дан 24.11.2019, 03:37

Теги

Похожие вопросы