Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

 
Классическая учебная литература:
С одной стороны не упомянуть эти издания нельзя, с другой — они настолько устарели, что едва ли их можно рекомендовать в роли учебника.

 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Первый пост темы имел вид...

Всего записей: 351 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: qw12, 09:42 24-03-2020
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
> при этом выборка очень странная, например rmdir есть, а rm нет.  
Поэтому и решил взяться за уточнение.
 
> Мне разграничение встроенных команд от всех остальных разумным не кажется.
Но и собрать команды из всех скриптов с какого-нибудь сервера с апачем/натом/прокси/почтой/бэкапами и проч. или из готовых решений в шапке тоже будет решением из разряда "не очень" - неизвестно, как скажется огромный список на скорости работы редактора, равно как и попытка сократить за счет регулярных выражений (типа rmdir и rm до "rm[a-z]*" или grep/egrep/fgrep/rgrep/pgrep).
Ну и хотя я и не религиозен (за исключением нелюбви к Unity, KDE, тем Xfce в PC-BSD и дистрибутива openSUSE), но не особо дружен с консолью любой ОС (без манов), поэтому просто не представляю, что из утилит есть в любом дистрибутиве безусловно и что часто используется.
 
> Да и потом я не нашел в файле указания, что это синтаксис для Баша.
Отталкивался от расширения: .sh - Bash Shell Script
 
> А в разных шеллах встроены разные команды — в busybox’е, например, — вплоть до awk’а, а в dash’е — весьма немного.
Меня это тоже смущает, но как дилетанта. Так понимаю, команды во многом пересекаются, в т.ч. условия и циклы?
 
> Достаточно взять и проверить, чтобы убедиться, что не нарушение традиций, а нарушение синтаксиса.
"Взять и проверить" может закончиться чем угодно, сформировалась привычка при отсутствии знаний искать->спросить->попробовать
 
> хорошо же видно, что неэкранированный хэш обработался как начало комментария.
"неэкранированный" - ключевое слово. Проверять экранирование с \, как в регулярных выражениях, и всеми вариантами кавычек и скобок? Про экранирование можно много нагуглить, но не про хэш. Или спросить? Ну не пишу я скриптов практически (не считая нескольких скриптов AutoIt и простенких батников)
Один-единственный resolution.sh трудится в виртуалке

Код:
xrandr --newmode "1152x864_60.00"   81.75  1152 1216 1336 1520  864 867 871 897 -hsync +vsync
xrandr --addmode VBOX0 1152x864_60.00
xrandr --output VBOX0 --mode 1152x864_60.00

но это же несерьезно И с ошибкой к тому же:

Цитата:
Любой shell-скрипт всегда начинается со строчки #!/bin/bash (или #!/bin/sh)

или поставило в тупик - не понял, что выбрать, покопался в /bin - используются приблизительно наравне, попробовал без - срабатывает, так и оставил.
 
В целом, наша небольшая дискуссия структурировала мысли в голове, спасибо, маны нашел (на русском и на www.gnu.org на всякий случай), завтра займусь.

Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 21:05 21-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Но и собрать команды из всех скриптов ... тоже будет решением из разряда "не очень"
Вот вы и пришли к единственно верному решению — не подсвечивать команды вовсе или подсвечивать все единообразно.
 
> Отталкивался от расширения: .sh - Bash Shell Script
Не, ну где логика? Что в этих двух буквах .sh (очевидно, от слова shell) указывает на то, что это скрипт для Баша, а не для какого-нибудь иного шелла (который, кстати, весьма вероятно называется именно /bin/sh). Правильно, ничто.
 
> "Взять и проверить" может закончиться чем угодно
Но в данных случаях заканчивается прояснением вопроса.
 
> "неэкранированный" - ключевое слово. Проверять экранирование с \, как в регулярных выражениях, и всеми вариантами кавычек и скобок?  
Конечно. А вы чего хотели? Сам Баш же это как-то различает. И в хороших редакторах (Вим, Емакс) подсветка синтаксиса это различает.
 
Я, кстати, вообще не понимаю, что вы делаете. Зачем изобретаете велосипед, вместо того, чтобы портировать на этот ваш Акелпад существующие хорошие правила подсветки синтаксиса (вимовские или иные).
 
> Цитата: «Любой shell-скрипт всегда начинается со строчки #!/bin/bash (или #!/bin/sh)»
Я не помню, чтоб я вам такое писал. Где вы это прочитали?
 
> не понял, что выбрать
Что значит «что»? Смотря, что вам надо. В вашей системе это, скорее всего, разные интерпретаторы.
 
> маны нашел (на русском и на www.gnu.org на всякий случай
А куда вы дели маны, которые установлены на вашей системе? Если вам не нравится less, как просмотрщик (да, именно less по-умолчанию открывается по $ man bash), то можете смотреть и в браузере:
$ BROWSER=iceweasel man --html bash
BROWSER — это переменная, можете, разумеется, установить ее глобально.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 22:12 21-11-2013 | Исправлено: ASE_DAG, 22:14 21-11-2013
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Не смущает употребление мною слов "не знаю", "не писал", "дилетант"? Процитирую себя же:

Цитата:
не особо дружен с консолью любой ОС

И с шеллами не было нужды разбираться, не надо судить строго, пожалуйста
 
>Вот вы и пришли к единственно верному решению — не подсвечивать команды вовсе или подсвечивать все единообразно.
Нет, не пришел: как минимум комментарии, условные операторы/циклы, переменные будут подсвечены все равно, что облегчит восприятие текста.
 
>Я не помню, чтоб я вам такое писал. Где вы это прочитали?  
Скопировал с первой попавшейся в гугле статьи по скриптам.
 
>> не понял, что выбрать
>Что значит «что»? Смотря, что вам надо. В вашей системе это, скорее всего, разные интерпретаторы.
А я не понимаю разницу (но знаю, что она есть) и вижу, что в /bin есть скрипты и с #!/bin/bash, и с #!/bin/sh. К слову, дописал #!/bin/sh, т.к. ничего кроме последовательного запуска команд там нет.
 
>Я, кстати, вообще не понимаю, что вы делаете. Зачем изобретаете велосипед, вместо того, чтобы портировать на этот ваш Акелпад существующие хорошие правила подсветки синтаксиса (вимовские или иные).
Так понимаю, в Vim для подсветки используются регулярные выражения, coder-файлы AkelPad не используют их так широко (хотя и есть возможность). Это раз. Во-вторых, мои знания регулярных выражений скромны, делал несколько вялых (неудачных, т.к. изучение просто так не эффективно) попыток освоить и только в этом месяце разродился двумя маленькими работающими выражениями
 
> А куда вы дели маны, которые установлены на вашей системе?
Сейчас в Win и не знаю сколько это продлится.
 
С хэшем придется повозиться, в крайнем случае - оставить как есть. Такой вопрос: допустимо ли писать так

Код:
echo "Далее следует комментарий."# Это комментарий

или перед хэшем обязательно должен быть пробел/табуляция? Появилась мысль, что это только вопрос красоты/удобочитаемости, но подтверждения не нашел.
 
З.Ы. Поэтому и хотел обсудить приватно - несколько выходим за рамки темы (и я уже заслужил предупреждение от модератора ), а отдельную тему создавать смысла нет - с десяток сообщений и она загнется.

Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 01:40 22-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off
> Не смущает употребление мною слов "не знаю", "не писал", "дилетант"?
Смущает. Совершенно не понимаю, на кой вам писать правила подсветки синтаксиса для языка, которым вы не владеете.
 
>> Вот вы и пришли к единственно верному решению — не подсвечивать команды вовсе или подсвечивать все единообразно.  
> Нет, не пришел: как минимум комментарии, условные операторы/циклы, переменные будут подсвечены все равно...
Кто-то из нас невнимательно читал, что ему написали. Мне кажется, что вы. Вот это: «не подсвечивать команды вовсе». Хотя Вим таки зачем-то подсвечивает встроенные команды и несколько внешних.
 
> А я не понимаю разницу и вижу, что в /bin есть скрипты и с #!/bin/bash, и с #!/bin/sh
/bin/sh — это некогда вполне материальный Борн-шелл, но сейчас, как правило, симлинк (реже — хардлинк) на dash, bash, busybox. Если вы не понимаете разницы, то в вашей системе это симлинк на bash, но это не везде так.
 
> Сейчас в Win и не знаю сколько это продлится.
И что с того? В Цигвине маны тоже есть. Хотя, конечно, с Гуглем часто проще.
 
> перед хэшем обязательно должен быть пробел/табуляция? Появилась мысль, что это только вопрос красоты/удобочитаемости, но подтверждения не нашел.  
:wall: Какое вам еще нужно подтверждение, кроме реакции самого Баша?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 14:17 22-11-2013 | Исправлено: ASE_DAG, 14:19 22-11-2013
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
>Совершенно не понимаю, на кой вам писать правила подсветки синтаксиса для языка, которым вы не владеете.
Потому что у меня есть быстрый редактор с приличным функционалом (более быстрого со сравнимым функционалом и полной поддержкой юникода я еще не видел) и файлом подсветки, который надо поправить Попросить кого-нибудь взяться довести до ума?
 
>Кто-то из нас невнимательно читал, что ему написали. Мне кажется, что вы. Вот это: «не подсвечивать команды вовсе».
Не уловил акцент, прошу прощения.
 
>/bin/sh — это некогда вполне материальный Борн-шелл, но сейчас, как правило, симлинк (реже — хардлинк) на dash, bash, busybox. Если вы не понимаете разницы, то в вашей системе это симлинк на bash, но это не везде так.
Так понял, симлинк на bash (Xubuntu), просто успел прочитать про ошибку, когда по привычке на системе без симлинка пытаются запустить скрипт с #!/bin/sh и специфическими для bash конструкциями. Тот скрипт примитивен.
 
>:wall: Какое вам еще нужно подтверждение, кроме реакции самого Баша?
Ну вот, опять Т.е., нужно написать скрипт (или найти), который ничего не натворит, но при этом должно быть не менее 5 строк, начинающихся с команды echo. Или спросить и получить Да, Нет или Попробуй так (если у кого-нибудь найдется свободное лишнее время на нуба)?
Ну или воспользоваться третьим вариантом: посмотреть, как подсвечивается комментарий в других редакторах (ковыряюсь в m4.lang gedit'а).

Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 15:43 22-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off
> симлинк на bash (Xubuntu)
Нет. В Убунте — на dash.
 
> нужно написать скрипт (или найти), который ничего не натворит, но при этом должно быть не менее 5 строк...
ЛОЛШТО?
$ echo foo#bar
 
>> «не подсвечивать команды вовсе».
> Не уловил акцент, прошу прощения.  
Не надо подсвечивать имена команд. Вообще. Ну кроме [.
 
> воспользоваться третьим вариантом: посмотреть, как подсвечивается комментарий в других редакторах
О! Доперли.
Цитата:
Я, кстати, вообще не понимаю, что вы делаете. Зачем изобретаете велосипед, вместо того, чтобы портировать на этот ваш Акелпад существующие хорошие правила подсветки синтаксиса (вимовские или иные).


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 16:53 22-11-2013
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
>ЛОЛШТО?
Документацию читаю, беру слова про 5 взад, достаточно было одной echo.
 
>$ echo foo#bar
Мне это строка ничего не говорит Сделал как в gedit:
echo foo #bar - комментарий подсвечивается
echo foo#bar - комментарий не подсвечивается
 
>О! Доперли.
В gedit есть списки команд built-in-command и common-command, переменные и комментарии - регулярными выражениями, но я не могу просто взять и портировать, хотя бы потому, что не смотря на наличие rm в секции common-command, там нет iptables, которая уже появилась в моем списке. Не считая того, что регулярные выражения нужно допиливать.
 
В общем, можно сказать, остался почти с чем был - маны, другие редакторы и дружба с регулярными выражениями. За сим - спасибо за помощь и откланиваюсь, публичная порка дает мало конструктива, я и так в курсе своих недостатков и пробелов в знаниях/умениях

Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 18:52 22-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>> $ echo foo#bar
> Мне это строка ничего не говорит :-)

Цитата:
Q: Я задал вопрос и получил в ответ что-то такое:
# aptitude purge flashplugin-nonfree
$ wget http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz
$ tar xzvf flashplayer10_2_p3_64bit_linux_111710.tar.gz
# mv libflashplayer.so /usr/lib/firefox-addons/plugins/

Что это, и что мне с этим делать?
 
A: Это команды, их надо выполнить в вашем любимом эмуляторе терминала и вдумчиво прочитать то, что машина вам ответила.
Эмулятор терминала в Гноме по-умолчанию можно найти в меню Приложения › Стандартные › Терминал; в КДЕ по-умолчанию — меню типа „Пуск” › Приложения › Система › Терминал.
 
Обратите внимание на знак доллара ($) или решетки (#) в начале строки. Это не часть команды (их водить не надо), это — приглашение командной оболочки.  
Знак доллара или процента означает, что команда отдается от имени простого, непривилегированного, пользователя. Просто скопируйте команду, чтобы увидеть что-то вроде:  
vasya@computer:~$ cat /etc/fstab
и нажмите Enter на клавиатуре.
Новичок в GNU/Linux
 
Добавлено:
> несмотря на наличие rm в секции common-command, там нет iptables, которая уже появилась в моем списке
А каковы все-таки критерии составления этого вашего списка? Это список чего?

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 18:58 22-11-2013
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос
Цитата:
Помогите пожалуйста написать скрипт на Shell для анализа трафика, который подсчитывает количество символов входящих-выходящих, а также количество конкретных букв

belsan91
Эм, вы собрались в каждом проходящём пакете выделять ASCII символы и считать нужные из них? WTF?

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 18:27 24-11-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Забавно. В Баше нельзя использовать альясы в том же цикле, где они об’явлены.
 

Код:
#!/bin/bash
shopt -s expand_aliases
alias myalias='echo Foo'
for i in 1; do
    alias myalias='echo Bar'
    alias myalias
    myalias
done
alias myalias
myalias

 
Вывод:
alias myalias='echo Bar'
Foo
alias myalias='echo Bar'
Bar

 
Само по себе, это, вроде бы, не баг. И даже описано в ABSG. Но вот разночтение между выводом alias myalias и тем, что будет на самом деле выполнено по myalias, выносит мозг при поиске ошибки.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:00 02-12-2013
yrkrus



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго всем дня помогите советом, есть скриптик:

Код:
 
#!/bin/sh
 
mount_smbfs -N //PETROV@BACKUP/backup0 /mnt
source_dir=/links/backup_zabbix
date=`date '+%d.%m.%Y'`
backup=backup_monitoring_$date.tar.gz
base_name=zabbix.sql
mount_backup=/mnt/mysql_freebsd/vlg-monitoring
base=zabbix
#
#
#
mysqldump -u zabbix -pzabbix $base > $source_dir/$base_name
cd $source_dir
tar czf $backup $source_dir
cp $backup $mount_backup/$backup
#cp $base_name $mount_backup/$base_name
rm -fv $backup
rm -fv $base_name
 

 
Все отлично отрабатывает если вручную запускать, если ставить в cron:
58 22 * * * /etc/backup_zabbix.sh  (58 22 как для примера)
 
то не отрабатывает, т..е дамп не создается... в логах все прекрасно скрипт запускается под root, права так же даны root
 
помогите кто чем может...
 
 
Добавлено:
Всем спасибо, отвечу сам =)
в скрипте, запускаемом из-под крон команды должны идти с полным путем
к mysqldump добавляем путь до него: в моем случае это /usr/local/bin/mysqldump

Всего записей: 379 | Зарегистр. 30-11-2010 | Отправлено: 23:00 19-12-2013 | Исправлено: yrkrus, 23:15 19-12-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще из серии «Этот забавный Баш».
 
$ declare -A A
$ A["["]=1
$ echo $((A["["]))
1
$ ((A["["] > 0)) && echo Y
bash: ((: A[[] > 0: bad array subscript (error token is "A[[] > 0")

 
Какая, интересно, внутренняя логика к такому приводит.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 02:01 22-12-2013
FoxBlack09

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Вопрос уважаемым специалистам. Наверняка Вам уже попадались два скрипта, реализующие голосовые функции 3G модема Huawei. С одним я уже разобрался и смог применить его на другой модели модема: для Huawei E160 в audacity используем параметры 8 bit, signed pcm, 8000 hz при создании голосового сообщения.
А вот со вторым пока ничего не получилось. Звонки идут, но "трубка" не поднимается. Хотелось бы довести этот скрипт до рабочего состояния.  
Я пробовал с автором скрипта связаться, пока безуспешно.
Если кто-то может помочь в решении проблемы с этим скриптом, могу предоставить виртуальную машину с модемом.

Всего записей: 510 | Зарегистр. 01-04-2009 | Отправлено: 12:53 13-01-2014 | Исправлено: FoxBlack09, 15:24 13-01-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FoxBlack09, нет, увы, лично мне нет попадались. И полагаю, что вы вовсе не по адресу — здесь определяющим условием является не познания в шелл-скриптинге (тем более, что скрипты, о коих речь, на Перле), а наличие этого самого модема.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:32 13-01-2014
FoxBlack09

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
модем есть, виртуальный ubuntu 13.x linux тоже есть
В скрипте всё отлично до строчки
   # принимаем входящий вызов
    my $l_rec = at_send("ATA",qr/^(OK|ERROR)/);
    return 0 if $l_rec eq "ERROR";
и если эти строчки поднять выше всех остальных команд в функции accept_call, то вызов будет принят, "трубка поднята".
Ну раз я не по адресу, извините. Подумаю над созданием отдельной темы как нибудь.

Всего записей: 510 | Зарегистр. 01-04-2009 | Отправлено: 15:37 13-01-2014 | Исправлено: FoxBlack09, 16:59 13-01-2014
bredis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Гуру помогите. Никак не получается заставить скрипт работать до конца.

Код:
#!/bin/sh
 
MOUNTPNT="/media/DISK_A1"
MOUNT="$MOUNTPNT/system"
 
export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin
export LD_LIBRARY_PATH=$MOUNT/lib:$MOUNT/usr/lib:/lib:/usr/lib
 
 
IFACE="ppp0"
 TTL=3600
 SERVERRU=ns1.host.ru
 SERVERNET=ns1.host.net
 HOSTNAMERU=host.host.ru
 HOSTNAMENET=host.host.net
 ZONERU=host.ru
 ZONENET=host.net
 KEYFILERU=/media/DISK_A1/system/etc/namedb/keys/key.ru.private
 KEYFILENET=/media/DISK_A1/system/etc/namedb/keys/key.net.private
 
 new_ip_address=`ifconfig $IFACE | grep "inet addr:" | awk '{print $2}' | awk -F ":" '{print $2}'`
 new_ip_address=${new_ip_address}
 
 
 nsupdate -v -k $KEYFILERU << EOF
 server $SERVERRU
 zone $ZONERU
 update delete $HOSTNAMERU A
 update add $HOSTNAMERU $TTL A $new_ip_address
 show
 send
 quit
  EOF
 
 nsupdate -v -k $KEYFILENET << EOF
  server $SERVERNET
  zone $ZONENET
  update delete $HOSTNAMENET A
  update add $HOSTNAMENET $TTL A $new_ip_address
  show
  send
  quit
  EOF

 
Так вот nsupdate зоны .ru отрабатывает, а зоны .net не отрабатывает.
Подскажите, что добавить в код, что б оба nsupdate отработали?

Всего записей: 9 | Зарегистр. 22-12-2012 | Отправлено: 16:43 12-02-2014 | Исправлено: bredis, 17:35 12-02-2014
arto

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
убрать пробелы перед первым EOF
 
Добавлено:
btw, точка у вас играет какую либо роль?

Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 17:28 12-02-2014
bredis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arto, не понял где убрать пробел?  

Код:
nsupdate -v -k $KEYFILERU << EOF  
  server $SERVERRU  
  zone $ZONERU  
  update delete $HOSTNAMERU A  
  update add $HOSTNAMERU $TTL A $new_ip_address  
  show  
  send  
  quit  
   EOF

 
Это он отрабатывает и останавливается.
 
Точку я уже убрал. не обращаем внимания, да она и не мешала.

Всего записей: 9 | Зарегистр. 22-12-2012 | Отправлено: 17:30 12-02-2014 | Исправлено: bredis, 17:31 12-02-2014
arto

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попробуйте совет.

Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 17:34 12-02-2014
bredis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
arto, огромное спасибо. Все заработало.

Код:
nsupdate -v -k $KEYFILERU<<EOF
server $SERVERRU
zone $ZONERU
update delete $HOSTNAMERU A
update add $HOSTNAMERU $TTL A $new_ip_address
show
send
quit
EOF
 
nsupdate -v -k $KEYFILENET<<EOF
server $SERVERNET
zone $ZONENET
update delete $HOSTNAMENET A
update add $HOSTNAMENET $TTL A $new_ip_address
show
send
quit
EOF
 

Всего записей: 9 | Зарегистр. 22-12-2012 | Отправлено: 17:40 12-02-2014 | Исправлено: bredis, 17:42 12-02-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru