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

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

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

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
      Шпаргалка по частым синтаксическим оборотам.

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

 

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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tirex2k самый простой вариант: перенаправить вывод первой команды в файл и скриптом читать уже из этого файла.

Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 17:42 06-09-2024
tirex2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это сложный путь, должно быть проще, я внутри for пробывал, тоже не очень получается, мелочь какую то не догоняю.

Всего записей: 79 | Зарегистр. 09-12-2004 | Отправлено: 06:07 07-09-2024
Artezys



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мог бы кто помочь создать судо акаунт через linux live cd.

Всего записей: 143 | Зарегистр. 17-02-2017 | Отправлено: 12:23 08-09-2024 | Исправлено: Artezys, 23:21 08-09-2024
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как сделать противоположность циклу for, чтобы переменные принимались одновременно, а не после каждого выполнения цикла:
var_ch1=ch1
var_param1=pr1
var_ch2=ch2
var_param2=pr2
 
ffmpeg \
-i $input1 $var_ch1 $var_param1 \
-i $input2 $var_ch2 $var_param2
...
-i $inputN $var_chN $var_paramN
 
надо сделать так:
array=("$input1 $var_ch1 $var_param1" "$input2 $var_ch2 $var_param2" "$inputN $var_chN $var_paramN")
ffmpeg \
-i $1 $3 $3 \
 
В ffmpeg можно давать несколько input,  делать обработку и формировать отдельный output. Когда делаю через for то сначала отрабатывает $var_ch1 $var_param1, затем $var_ch2 $var_param2 и т.д, а должно быть одновременное чтение и выполнение переменных. Строки array - это разные параметры и применяются в разных местах.

Всего записей: 360 | Зарегистр. 19-04-2003 | Отправлено: 15:43 20-09-2024 | Исправлено: digital422, 16:03 20-09-2024
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Есть два некрасивых варианта, но без нормального видения картины всей задачи ни чего лучше не предложу:
1) раскрыть просто массив ваш, но небезопасно из-за отсутствия кавычек: ffmpeg ${arr[@]/#/-input } -output outputfile_and_opts
2) сформировать строку в цикле for и потом скормить её eval'у
(первый вариант всё же получше будет)

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 12:17 22-09-2024
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошо, опустим ffmpeg.  
Есть несколько одинаковых параметров: url, название и т.д. И есть программа, которая читает эти параметры. В стандартной ситуации делаем for, считываем параметры любым способом (переменная, массив и др.) и получаем результат после каждого цикла. В моем случае эти параметры надо применить одновременно и возможно не через array. Видел примеры через read, но там одиночные параметры, например только url.
Сейчас это выглядит так:

Код:
 
-i $input_1 \
-i $input_2 \
-i $input_3 \
-map 0 -c:a copy -map_metadata 0 -t 15 -y $input_1.wav \
-map 1 -c:a copy -map_metadata 1 -t 15 -y $input_2.wav \
-map 2 -c:a copy -map_metadata 2 -t 15 -y $input_3.wav
 

 
Вот такой набор параметров:
param1=$input_1 $input_1.wav 0
param2=$input_2 $input_2.wav 1
param3=$input_3 $input_3.wav 2

Всего записей: 360 | Зарегистр. 19-04-2003 | Отправлено: 18:48 22-09-2024 | Исправлено: digital422, 18:56 22-09-2024
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
яснее не стало
мой ответ с ${arr[@]/#/-input } всё ещё кажется рабочим вариантом
 
Добавлено:
digital422
Я для исправления Вашего вопроса вижу 2 пути задать вопрос понятно:
1) показать сырые нераспаршенные входные данные и показать как их надо применить, тогда есть шанс что середину мы сможем Вам предложить
2) показать Ваш текущий код (если его там не много), тогда может быть сможем его понять и исправить, раз это кажется Вам необходимым

----------
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.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 21:34 22-09-2024
karakurt2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я хочу в gawk разбить на записи входной файл таким образом, чтобы FlexLM FEATURE считалась одной записью:
 

Код:
 
INCREMENT Saturn slbsls 2022.5 31-may-2075 uncounted HOSTID=ANY \
    ISSUER=Mars NOTICE="Educational Only" START=1-jan-2020 \
    SIGN=2188F58A3960
 

 
Можете подсказать как это сделать?  
 
Разобрался:
 

Код:
 
BEGIN {  
  RS="[^\\\\]\r\n";
}
 
NR<4 {
  next
}
 
/^[ \t]*#/ {  
  next  
}
 
/\S+/ {  
  print(k, $0);
  k += 1
}
 

Всего записей: 736 | Зарегистр. 06-12-2003 | Отправлено: 15:13 27-10-2024 | Исправлено: karakurt2, 16:09 27-10-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 154

Компьютерный форум 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