The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Помогите разобраться с кодом (Bash)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Помогите разобраться с кодом (Bash)"  
Сообщение от THE_Beginner (ok) on 01-Фев-07, 21:42 
Вот такая задачка:

#!/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

Помогие разбраться в чем причина?
Второй день мучаюсь... ((

Огромное спасибо всем!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Помогите разобраться с кодом (Bash)"  
Сообщение от Oyyo on 01-Фев-07, 23:06 
>Вот такая задачка:
>
>#!/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, то это значение в файл не падает,
всё остальное записывает

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Помогите разобраться с кодом (Bash)"  
Сообщение от Oyyo on 01-Фев-07, 23:11 
>>if [ "`$element_count`" = "$X" -a "$CMD" != "${questions[$X]}" ]; then
P.S.
в операторе if обратные кавычки лишние,
я думаю это просто очепятка
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Помогите разобраться с кодом (Bash)"  
Сообщение от THE_Beginner (??) on 01-Фев-07, 23:34 
>>Вот такая задачка:
>>
>>#!/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, то это значение в файл не падает,
>всё остальное записывает


Спасибо за ответ и проверку скрипта! Очень помогли!  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру