Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 16.05.2019
Сообщений: 16
1

Передача нескольких команд в for

07.07.2019, 23:54. Показов 1697. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго вечера. В скриптах в общем то не слишком силён. В основном копипаст.
Столкнулся с проблемой:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
PJSIP="$(asterisk -rx 'pjsip show registrations' | sed -n '/Registered\|Request\|Rejected\|Authentication/p' | awk '{print $2}' && VARTRNK=#PJSIPTRNK)"
SIP="$(asterisk -rx 'sip show registry' | sed -n '/Registered\|Request\|Rejected\|Authentication/p' | awk '{print $3}' && VARTRNK=#SIPTRNK)"
 
for cmd in $PJSIP $SIP; do
 
    array=$cmd
    
    while IFS= read -r line ; do
    
    printf '%b' "$comma  {\"{$VARTRNK}\":\"$line\"}"
    comma=",\n"
    done <<< "$array"
done
По идеи этот скрипт должен выплёвывать:
{"{#PJSIPTRNK}":"Имя транка3"},
{"{#SIPTRNK}":"Имя транка1"},
{"{#SIPTRNK}":"Имя транка2"}

Но то ли не передаёт переменную "VARTRNK" в цикл, то ли лыжи не едут...Получаю:
{"{}":"Имя транка3"},
{"{}":"Имя транка1"},
{"{}":"Имя транка2"}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2019, 23:54
Ответы с готовыми решениями:

запуск нескольких команд
здрст товарищи линускоиды, можна ли както запустить несколько команд которые записаны в одной...

Выполнение нескольких команд одновременно
Есть необходимость, что-бы программа не отвлекалачь на ввод переменной, а продолжалая свой цикл....

Передача нескольких параметров в pthread_create (передача структуры)
Здравствуйте. Мне нужно передать последним параметром в функцию pthread_create следующую структуру...

Конвейер команд для нескольких процессов
Здравствуйте все. Моя задача: написать конвейер команд. Из командной строке поступает команды,...

1
0 / 0 / 1
Регистрация: 16.05.2019
Сообщений: 16
09.07.2019, 00:24  [ТС] 2
Лучший ответ Сообщение было отмечено Marinero как решение

Решение

Сам спросил, сам ответил:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
PJSIP="$(asterisk -rx 'pjsip show registrations' | sed -n '/Registered\|Request\|Rejected\|Authentication/p' | awk '{print $2}')"
SIP="$(asterisk -rx 'sip show registry' | sed -n '/Registered\|Request\|Rejected\|Authentication/p' | awk '{print $3}')"
 
for cmd in "$PJSIP :PJSIPTRNK" "$SIP :SIPTRNK"; do
    VARTRNK="${cmd##*:}"
    array="${cmd%%:*}"
    
    while IFS= read -r line ; do
    printf '%b' "$comma  {\"{#$VARTRNK}\":\"$line\"}"
    comma=",\n"
    done
done
0
09.07.2019, 00:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2019, 00:24
Помогаю со студенческими работами здесь

Выполнение нескольких команд BAT файлов
Пример ниже позволяет выполнить одну команду в командной строке: ...

Обработка выбора для нескольких команд
Как правильно организовать обработку выбора для двух ТЧ ( у каждой есть кнопка подбор) Для...

Передача команд и параметров
Доброго времени суток! Вопрос возник вот такой. Требует из консоли вводить команды(возможно с...

Передача команд в cmd
Здравствуйте! Подскажите как можно передавать команды в cmd допустим запустил я ее, потом хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru