LinuxForum.Fans
Тема

Добавление и проверка целых значений

Автор: serggeee 8 сообщений 1505 просмотров
#155823

помогите исправить код

text
 COUNTER=100
echo "Do you wish to change the counter value currently set at $COUNTER ? [y..n] :"
read ANS
if [ "$ANS" = "y" ] || [ "$ANS" = "Y" ]; then
        echo "Enter a sensible value "
        read VALUE
expr $VALUE + 10 > /dev/null 2>&1
        STATUS=$?
if [ "$VALUE" = "" ] || [ "$STATUS" != "0" ]; then
        echo "You either entered nothing or a non-numeric "  >&2
        echo " Sorry now exiting..counter stays at $COUNTER" >&2
        exit 1
fi

COUNTER= expr $COUNTER + $VALUE echo "Counter now set to $COUNTER" else echo " Counter stays at $COUNTER" fi

~

он выдаёт вот какой результат:
[serrggeee@localhost ~]$ sh test3
Do you wish to change the counter value currently set at 100 ? [y..n] :
y
Enter a sensible value
55
155
Counter now set to 100
[serrggeee@localhost ~]$
а мне нужно чтобы было Counter now set to 155

#155842

наверно так: COUNTER=$(expr $COUNTER + $VALUE)

#155845

почти получилось за исклюсением того что по сценарию COUNTER=100 должент быть уже COUNTER=155 , а у меня при новом вызове сценария :
[serrggeee@localhost ~]$ sh test3
Do you wish to change the counter value currently set at 100 ? [y..n] :
здесь ни чего не можете посоветовать

#155900
text

#в начале что-то вроде

if [ ! $COUNTER]; then COUNTER=100 fi

#.... # в конце:

export COUNTER;

#155935

вы имели ввиду это :

text
COUNTER=100
echo "Do you wish to change the counter value currently set at $COUNTER ? [y..n] :"
read ANS
if [ "$ANS" = "y" ] || [ "$ANS" = "Y" ]; then
        echo "Enter a sensible value "
        read VALUE
expr $VALUE + 10 > /dev/null 2>&1
        STATUS=$?
if [ "$VALUE" = "" ] || [ "$STATUS" != "0" ]; then
        echo "You either entered nothing or a non-numeric "  >&2
        echo " Sorry now exiting..counter stays at $COUNTER" >&2
        exit 1
fi

COUNTER=$(expr $COUNTER + $VALUE) echo "Counter now set to $COUNTER" if [ ! $COUNTER]; then COUNTER=100 fi export COUNTER else echo " Counter stays at $COUNTER" fi

вот что выходит:
[serrggeee@localhost ~]$ sh test3
Do you wish to change the counter value currently set at 100 ? [y..n] :
y
Enter a sensible value
55
Counter now set to 155
test3: line 17: [: missing `]'

#155939
serggeee написал:
if [ ! $COUNTER]; then

Пробел возле скобки

#155957

[serrggeee@localhost ~]$ sh test3
Do you wish to change the counter value currently set at 100 ? [y..n] :
y
Enter a sensible value
55
Counter now set to 155
[serrggeee@localhost ~]$ sh test3
Do you wish to change the counter value currently set at 100 ? [y..n] :
не выходит ошибку больше не выдаёт а вото 155 не сохраняется

#155976

во-первых

text

if [ ! $COUNTER]; then
        COUNTER=100
fi

это надо было поставить в самом начале вместо COUNTER=100
во-вторых, я наврал и это работать не будет... между запусками скрипта переменную хранить не возможно... только если в каком-либо файле.

Войдите или зарегистрируйтесь, чтобы ответить.