Инструменты пользователя

Инструменты сайта


igor:practicum_po_napisaniju_shell_scripts

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:practicum_po_napisaniju_shell_scripts [2018/02/13 22:23] – [Эксперимент N1: цикл for, или цикл с параметром] igorigor:practicum_po_napisaniju_shell_scripts [2019/08/11 20:16] (текущий) – [Для чего нужно овладевать технологией написания сценариев?] igor
Строка 22: Строка 22:
 Если вы ничего не знаете о сценариях оболочки, то для начала рекомендую заглянуть вот сюда: \\ Если вы ничего не знаете о сценариях оболочки, то для начала рекомендую заглянуть вот сюда: \\
 https://losst.ru/napisanie-skriptov-na-bash \\ https://losst.ru/napisanie-skriptov-na-bash \\
-Статья полезная, но минус в том, что не каждый читатель в состоянии понять, для чего по жизни нужны эти "Hello world". Поэтому у меня возникла идея дополнить ее, приблизить читателя "к земле". В результате получился+https://vk.com/@nuancesprog-funkcionalnye-i-gibkie-shell-skripty \\ 
 +Статьи полезные, но их минус в том, что не каждый читатель в состоянии понять, для чего по жизни нужны эти "Hello world". Поэтому у меня возникла идея дополнить ее, приблизить читателя "к земле". В результате получился
 небольшой практикум, который я и предлагаю вашему вниманию сегодня. \\ \\ небольшой практикум, который я и предлагаю вашему вниманию сегодня. \\ \\
  
Строка 31: Строка 32:
 У меня есть целая система, которая постороннему человеку покажется совершенно невменяемой. Однако человек не посторонний, а хоть немного меня знающий скажет, что у Романыча ничего с бухты-барахты не возникает: если система есть, значит она чем-то мотивирована. Если говорить о моих аудиозаписях, то для их воспроизведения я использую (или использовал раньше) различные устройства, которые далеко не единообразно воспринимают (не воспринимают) как имена файлов, так и id3-теги, находящиеся внутри файлов. Значит, нужно давать файлам имена не какие попало, а такие, которые позволят избежать путаницы. У меня есть целая система, которая постороннему человеку покажется совершенно невменяемой. Однако человек не посторонний, а хоть немного меня знающий скажет, что у Романыча ничего с бухты-барахты не возникает: если система есть, значит она чем-то мотивирована. Если говорить о моих аудиозаписях, то для их воспроизведения я использую (или использовал раньше) различные устройства, которые далеко не единообразно воспринимают (не воспринимают) как имена файлов, так и id3-теги, находящиеся внутри файлов. Значит, нужно давать файлам имена не какие попало, а такие, которые позволят избежать путаницы.
 И вот теперь у меня появилось несколько каталогов, в каждом из которых несколько файлов с именами типа TrackNo01, TrackNo02, TrackNo03 и т. д. В нынешних ОС ситуация вполне легальная, но в своем доме я такого не допускаю: во-первых, неизбежна путаница, во-вторых, одно случайное нажатие F5 в полуночном командере - и файлы из некоторого каталога "затрут" одноименные файлы в другом каталоге (без малейшего шанса на восстановление!). Стало быть, надо все файлы переименовать в соответствии с моей системой: в начало имени каждого файла вставить две буквы, кодирующие исполнителя (или инструмент, если исполнитель неизвестен или разный в пределах каталога). Для всех файлов в том или ином каталоге эти две буквы будут одинаковы, например оркестр Г. фон Караяна - KA, испанская гитара - IG и т. д. Отсюда идея: не переименовывать файлы вручную, а написать скрипт. Используем цикл с параметром - цикл for: \\ \\ И вот теперь у меня появилось несколько каталогов, в каждом из которых несколько файлов с именами типа TrackNo01, TrackNo02, TrackNo03 и т. д. В нынешних ОС ситуация вполне легальная, но в своем доме я такого не допускаю: во-первых, неизбежна путаница, во-вторых, одно случайное нажатие F5 в полуночном командере - и файлы из некоторого каталога "затрут" одноименные файлы в другом каталоге (без малейшего шанса на восстановление!). Стало быть, надо все файлы переименовать в соответствии с моей системой: в начало имени каждого файла вставить две буквы, кодирующие исполнителя (или инструмент, если исполнитель неизвестен или разный в пределах каталога). Для всех файлов в том или ином каталоге эти две буквы будут одинаковы, например оркестр Г. фон Караяна - KA, испанская гитара - IG и т. д. Отсюда идея: не переименовывать файлы вручную, а написать скрипт. Используем цикл с параметром - цикл for: \\ \\
-**//<code>#!/bin/bash \\+**//#!/bin/bash \\
 for fname in `ls *.mp3` \\ for fname in `ls *.mp3` \\
 do \\ do \\
 echo cp $fname IG-$fname \\ echo cp $fname IG-$fname \\
-done</code>//** \\ \\+done//** \\ \\
 Вот такой простенький скрипт, который даже можно не записывать в файл. \\ Вот такой простенький скрипт, который даже можно не записывать в файл. \\
 === Рассмотрим подробно, что здесь написано. === === Рассмотрим подробно, что здесь написано. ===
igor/practicum_po_napisaniju_shell_scripts.txt · Последнее изменение: 2019/08/11 20:16 — igor