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

Подскажите, как объединить два скрипта

30.08.2012, 21:54. Показов 2556. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
уважаемые жители топика,подскажите не смышлёнышу... как соеденить во едино два скрипта ? задача избавится от участия perl ...
вот первый
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
 
n=2;    # номер порта для запроса
rm -f /mnt/bal
F="/dev/ttyUSB$n"
echo -e "AT+CUSD=1,AA180C3602,15\r">$F
sleep 2
cat $F > /mnt/bal &
sleep 3; killall cat
cat /mnt/bal | \
grep "+CUSD:" | \
perl -ne '@a = m/([0-9A-F]{4})/g; map { eval "print "\\x{$_}""; } @a;' 2>/dev/null>/mnt/balance
echo ""
 
exit 0
идёт запрос баланса,а ответ приводит в читабельный вид perl

а вот чем я хочу заменить perl
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
 
decode_ucs2() {
    local text="$1"
 
    while [ -n "$text" ]; do
        local code="$((0x${text:0:4}))"
 
        if [ $code -le 127 ]; then
            echo -en \\x$(printf "%02x" $code)
        elif [ $code -le 2047 ]; then
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x1F) | 0xC0)))
            echo -en \\x$(printf "%02x" $(( ($code        & 0x3F) | 0x80)))
        elif [ $code -le 65535 ]; then
            echo -en \\x$(printf "%02x" $(((($code >> 12) & 0x0F) | 0xE0)))
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $((( $code        & 0x3F) | 0x80)))
        elif [ $code -le 1114111 ]; then
            echo -en \\x$(printf "%02x" $(((($code >> 18) & 0x07) | 0xF0)))
            echo -en \\x$(printf "%02x" $(((($code >> 12) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $((( $code        & 0x3F) | 0x80)))
        else
            echo -n "?"
        fi
 
        text="${text:4}"
    done
 
    echo ""
}
 
msg="04110430043B0430043D0441003A003600380033002C003100360440002004230441043B04430433043000200022042704350440043D044B043900200441043F04380441043E043A0022002E00200418043D0444043E003A0020002A003100310031002A0034003400320023"
decode_ucs2 "$msg"
как видите это я в ручную перевожу ответ от модема,как мне соединить в один скрипт,что бы не участвовал perl ?

Спасибо !
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2012, 21:54
Ответы с готовыми решениями:

Подскажите как объединить два скрипта
Нужно сделать прокрутку фото в галерее, подключил скрипт ( Sky jQuery Touch Carousel v1.0.2 ), но...

Как объединить два скрипта в один
Два скрипта: /*первый*/ $(document).ready(function() { url = window.location.href;...

Правильно объединить два скрипта
Привет всем. Делаю я поиск пользователей с условием. Сам поиск я написал вот он $query = 'SELECT...

Не могу объединить два скрипта
Привет всем, хочу сделать мультиселект у меня есть выпадающие списки вот скрипт <section...

6
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
31.08.2012, 07:56 2
Bash
1
decode_ucs2 "$(cat /mnt/bal | grep "+CUSD:")" 2>/dev/null 1>/mnt/balance
0
2 / 2 / 0
Регистрация: 02.08.2011
Сообщений: 34
31.08.2012, 09:02  [ТС] 3
благодарю за наводку
но я забыл наверно что то уточнить...(а именно что это всё,я мучу на openwrt) вот что теперь выдаёт склеенный скрипт, видать тупрвыводит то что в /mnt/bal и в /mnt/balance пусто
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
31.08.2012, 09:20 4
склеенный скрипт скопируй сюда
0
2 / 2 / 0
Регистрация: 02.08.2011
Сообщений: 34
31.08.2012, 09:36  [ТС] 5
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh
 
n=5;    # номер порта для запроса
rm -f /mnt/bal
F="/dev/ttyUSB$n"
echo -e "AT+CUSD=1,AA180C3602,15\r">$F
sleep 2
cat $F > /mnt/bal &
sleep 3; killall cat
cat /mnt/bal | \
 
decode_ucs2() {
    local text="$1"
 
    while [ -n "$text" ]; do
        local code="$((0x${text:0:4}))"
 
        if [ $code -le 127 ]; then
            echo -en \\x$(printf "%02x" $code)
        elif [ $code -le 2047 ]; then
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x1F) | 0xC0)))
            echo -en \\x$(printf "%02x" $(( ($code        & 0x3F) | 0x80)))
        elif [ $code -le 65535 ]; then
            echo -en \\x$(printf "%02x" $(((($code >> 12) & 0x0F) | 0xE0)))
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $((( $code        & 0x3F) | 0x80)))
        elif [ $code -le 1114111 ]; then
            echo -en \\x$(printf "%02x" $(((($code >> 18) & 0x07) | 0xF0)))
            echo -en \\x$(printf "%02x" $(((($code >> 12) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $(((($code >>  6) & 0x3F) | 0x80)))
            echo -en \\x$(printf "%02x" $((( $code        & 0x3F) | 0x80)))
        else
            echo -n "?"
        fi
 
        text="${text:4}"
    done
 
    echo ""
}
sleep 1
decode_ucs2 "$(cat /mnt/bal | grep "+CUSD:")" 2>/dev/null 1>/mnt/balance
exit 0
наверно как то надо не весь вывод обрабатывать,а только выдирать из /mnt/bal то что идтёт после +CUSD: 0, в кавычках...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
31.08.2012, 10:36 6
определение функции вставь перед всеми командами после #!/bin/sh
1
2 / 2 / 0
Регистрация: 02.08.2011
Сообщений: 34
31.08.2012, 21:36  [ТС] 7
спасибо ! вот что вышло

Подскажите, как объединить два скрипта


и еще вопросик в догонку.. в web админке luCI как видите по русски,а вот в putty кряказябры

Подскажите, как объединить два скрипта


можно ли,и там и там что бы в читабельном виде было? если да ,то подскажите как...

Добавлено через 3 часа 24 минуты
про кряказябры вопрос снимаю,сам допетрил ещё раз спасибо за подсказку по скрещиванию ....
0
31.08.2012, 21:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2012, 21:36
Помогаю со студенческими работами здесь

Delphi 7+ADO+Access подскажите как объединить два запроса Insert into
Есть конструкция на кнопке: ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('INSERT INTO Студенты(,Fio,)...

Объединить два скрипта и вывести постранично
Файл index.php <?php $fb2_file = '44.fb2'; $html = ''; $skip = 0; $limit = 120000; ...

Объединить два PHP скрипта из одного Ларавель-проекта, в один работающий скрипт
Задача: Объединить два PHP скрипта из одного Ларавель-проекта, в один работающий скрипт. Ларавель...

Два провайдера, два роутера (с NAT), как объединить всё это?
Есть два роутера, один с вайфаем, получает инет по выделенке (витая пара), другой ADSL. Инет в...


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

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