Вот такая задачка:#!/bin/bash
questions[1]=111
questions[2]=222
questions[3]=333
questions[4]=444
read CMDelement_count=${#questions[*]}
for ((X=0; X<=${#questions[*]}; X++)); do
if [ "`$element_count`" = "$X" -a "$CMD" != "${questions[$X]}" ]; then
echo "$CMD" >> questions.fl
fidone
Перевожу:
Есть массив:
Просматриваем элементы массиво циклом, далше...
Если последний элемент массива questions[$X] не равен $CMD, то, ЗАПИСАТЬ значение переменной $CMD в файл questions.flНо программка при любом раскладе записывает значение переменной в файл questions.fi
Помогие разбраться в чем причина?
Второй день мучаюсь... ((Огромное спасибо всем!
>Вот такая задачка:
>
>#!/bin/bash
>
>questions[1]=111
>questions[2]=222
>questions[3]=333
>questions[4]=444
>
>
>read CMD
>
>element_count=${#questions[*]}
>
>for ((X=0; X<=${#questions[*]}; X++)); do
>
>if [ "`$element_count`" = "$X" -a "$CMD" != "${questions[$X]}" ]; then
>echo "$CMD" >> questions.fl
>fi
>
>done
>
>Перевожу:
>Есть массив:
>Просматриваем элементы массиво циклом, далше...
> Если последний элемент массива questions[$X] не равен $CMD, то, ЗАПИСАТЬ значение
>переменной $CMD в файл questions.fl
>
>Но программка при любом раскладе записывает значение переменной в файл questions.fi
>
>Помогие разбраться в чем причина?
>Второй день мучаюсь... ((
>
>Огромное спасибо всем!согласно поставленной задчи всё работает, а задачу я понял так,
проверка введённого значения ведётся только с последним
элементом массива с значением "444"если ввести 444, то это значение в файл не падает,
всё остальное записывает
>>if [ "`$element_count`" = "$X" -a "$CMD" != "${questions[$X]}" ]; then
P.S.
в операторе if обратные кавычки лишние,
я думаю это просто очепятка
>>Вот такая задачка:
>>
>>#!/bin/bash
>>
>>questions[1]=111
>>questions[2]=222
>>questions[3]=333
>>questions[4]=444
>>
>>
>>read CMD
>>
>>element_count=${#questions[*]}
>>
>>for ((X=0; X<=${#questions[*]}; X++)); do
>>
>>if [ "`$element_count`" = "$X" -a "$CMD" != "${questions[$X]}" ]; then
>>echo "$CMD" >> questions.fl
>>fi
>>
>>done
>>
>>Перевожу:
>>Есть массив:
>>Просматриваем элементы массиво циклом, далше...
>> Если последний элемент массива questions[$X] не равен $CMD, то, ЗАПИСАТЬ значение
>>переменной $CMD в файл questions.fl
>>
>>Но программка при любом раскладе записывает значение переменной в файл questions.fi
>>
>>Помогие разбраться в чем причина?
>>Второй день мучаюсь... ((
>>
>>Огромное спасибо всем!
>
>согласно поставленной задчи всё работает, а задачу я понял так,
>проверка введённого значения ведётся только с последним
>элементом массива с значением "444"
>
>если ввести 444, то это значение в файл не падает,
>всё остальное записывает
Спасибо за ответ и проверку скрипта! Очень помогли!