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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77, построчное чтение файла на AWK в полном виде выглядит так:
 
$ awk 'BEGIN { while (getline LINE < "/etc/fstab") { print LINE } }'
 
Можете использовать его сколько угодно на любом уровне вложенности.


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 16:51 17-07-2014
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Закрывать файл, открытый  getline  не нужно ?
Планируется сотни тысяч итераций, в каждой по три getline.

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 16:57 17-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
В конструкции с редиректом из файла (< filename) вроде как ни чего закрывать не надо т.к. файловый дескриптор в виде имени переменной в данном случае и не существует.

----------
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:10 17-07-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
Зато вы не указали <my_url>
Потому что он - любой, и от него не зависит пустота конвейера (т.е. какой бы УРЛ был ни указан - конвейер еще пустее не будет)

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 09:23 18-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, ОК. Что за сборка aria2c? Если не цигвиновская, то сделайте перекрестную проверку:
— цигвиновская aria2c под цигвиновским Башем (это должно рабоатать без проблем, я проверил);
— цигвиновская aria2c под cmd.exe (я тоже проверил, тоже работает);
— эта ваша сборка aria2c под Башем.
 
Если по пп. 1,2 результат также положительный, а по п. 3 будет отрицательный, то:
— если вы собирали сами, пишите багрепорт авторам aria2c;  
— если использовали сборку — сборщику (а лучше соберите сами, да посмотрите).

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 09:59 18-07-2014 | Исправлено: ASE_DAG, 10:00 18-07-2014
kpp77

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 
getline LINE отрабатывает 14777 раз и все
 
Ограничения есть какие-то?
Похоже нужно закрывать как-то getline LINE.
 
pipe error: Too many open files in system
 
В примере $ awk 'BEGIN { while (getline LINE < "/etc/fstab") { print LINE } }'  
нужно делать close("/etc/fstab");

Всего записей: 72 | Зарегистр. 29-08-2012 | Отправлено: 13:53 18-07-2014 | Исправлено: kpp77, 14:10 18-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kpp77
Хм, походу дескриптор всё же существует и не временный а вполне реальный на всё время выполнения скрипта. Ну так закрывайте его раз всё сами уже поняли, это к тому же сэкономит ресурсы системы.

----------
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 | Отправлено: 12:28 19-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd> т.к. файловый дескриптор в виде имени переменной в данном случае и не существует
 
А что такое «файловый дескриптор в виде имени переменной»? Файловый дескриптор — он и есть файловый дескриптор.
 
kpp77> В примере $ awk 'BEGIN { while (getline LINE < "/etc/fstab") { print LINE } }'  нужно делатьclose("/etc/fstab");
 
В этом примере close("/etc/fstab"); нужно делать в той же степени, что и exit;, т. е. можно конечно, но смысла нет — что скрипт завершится и без этого, что дескриптор и без того закроется. А вот если у вас файлов много, и читаются они поочередно, а не параллельно, то, конечно, вы правы — стоит их закрывать явно.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:34 19-07-2014 | Исправлено: ASE_DAG, 17:53 19-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Я полагал, что т.к. он не привязывается к переменной, то он уничтожается автоматически по окончании цикла чтения.

----------
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 | Отправлено: 20:52 19-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd, ну в АВКе, вроде как, и нельзя явно привязать файл к переменной, но какая-то структура в памяти на него неявно заводится, иначе как будет сохраняться номер текущей строки. Это в шелле перенаправление (<) читает весь файл за раз, а здесь-то построчно.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 21:19 19-07-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
Что за сборка aria2c?
С сорсфоржа, официальный бинарник
Цитата:
The executable was compiled using mingw-w64 cross compiler on Debian Linux.

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 12:14 20-07-2014
ASE_DAG



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

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 00:00 21-07-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Проверил, aria2 из cygwin под cmd и правда хавает ввод с -i-. Беда в том, что там она старая - aria2 version 1.17.1. А новая версия (только начиная с самой свежей, 1.18.6) начала сохранять файлы с православными именами, как вгет. Более старые сохраняют с именем страницы без учета редиректа.
Пример - http://go.microsoft.com/fwlink/?LinkID=87341

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 17:51 21-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, у меня с точностью до наоборот.
 
$ echo 'http://go.microsoft.com/fwlink/?LinkID=87341' | aria2c -i - сохраняет под именем mpam-feX64.exe
 
$ echo 'http://go.microsoft.com/fwlink/?LinkID=87341' | wget -i - — под index.html@LinkID=87341
 
Вам имя второго типа нужно?
 
$ wget --version
GNU Wget 1.15 built on cygwin.
<...>
 
$ aria2c --version
aria2 version 1.9.4
<...>


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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 21:43 21-07-2014 | Исправлено: ASE_DAG, 21:44 21-07-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Первого...
Цитата:
e10e99|OK  |   2.8MiB/s|D:\Updates\AntiVir/adlpackages.aspx

Цитата:
D:\Updates>aria2c.exe --version
aria2 version 1.17.1
Copyright (C) 2006, 2013 Tatsuhiro Tsujikawa
про цигвин ничего не написано, но это она...
А насчет вгета - по умолчанию да, имя некошерное, но в нем есть опция --trust-server-names

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 09:26 23-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ> aria2 version 1.17.1
 
Не понимаю, где вы ее взяли. Цигвин сейчас предлагает именно 1.9.4. Поставьте ее в качестве практического решения насущной задачи, а багрепорт-то все-таки напишите (если еще не написали).
 
Добавлено:
Ага! Нашел, 1.17.1 доступна для amd64, а для ix86 — только 1.9.4. Решительно не понимаю, чего там архитектурно-зависимого.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 13:20 23-07-2014
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Багрепорт накалякал еще 2 дня назад, пока реакции никакой.
Но, у меня 64-битка... сам не знаю, что там не так.

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 19:22 23-07-2014
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ> пока реакции никакой
 
Если проблему решат где-то через месяц — это будет очень даже быстро.
 
> у меня 64-битка
 
Что с того? Поставьте параллельно x86_64 сборке Цигвина x86.

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

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 14:48 24-07-2014
opt_step



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите, плиз
http://forum.ru-board.com/topic.cgi?forum=65&topic=4162&start=2760#11

----------
Reset - не кнопка, а горькая необходимость.

Всего записей: 11230 | Зарегистр. 10-09-2008 | Отправлено: 12:07 26-07-2014
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
opt_step
Не надо дублировать вопросы или давать ссылки на них в соседних темах, те кто обитают на форуме и так читают все последние изменения.

----------
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 | Отправлено: 12:11 26-07-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