LINUX.ORG.RU

Основы программирования в командной оболочке shell

 , для начинающих


0

0

В данной статье будет рассмотрен сценарий резервного копирования, обладающий скромными функциональными свойствами. Главная задача состоит в том, чтобы читатель понял, что можно делать в командной строке, и не только скопировал и выполнил предложенный командный файл, а заинтересовался расширением его функций, занялся исследованием необъятных возможностей, предоставляемых командными оболочками. И если кто-то, прочитав эту статью, попробует усовершенствовать приведённый здесь код, или напишет собственный вариант, или реализует свою независимую идею, то я сочту, что основная цель достигнута.

>>> Подробности

★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Dark_Wizard

>оболочка не нужна

Старая добрая ЛОРовская традиция. О чём бы ни была тема, в первых постах обязательно будет «не нужно» и «закопайте». Наверное, если появится новость о выходе новой версии ядра Linux, там тоже будет «линукс не нужен», «закопайте ядро, без него всё работает лучше» и т.п.

А статья ничего. Конечно, на роль учебника не тянет, но автор и не собирался писать учебник. Основная задача - показать богатство возможностей оболочки, заинтересовать читателя изучать её дальше. Это, на мой взгляд, получилось :)

CanSee
()
Ответ на: комментарий от CanSee

> Основная задача - показать богатство возможностей оболочки, заинтересовать читателя изучать её дальше. Это, на мой взгляд, получилось :)

+1

hobbit ★★★★★
()
Ответ на: комментарий от CanSee

>Конечно, на роль учебника не тянет, но автор и не собирался писать учебник.

Тогда не нужно было давать такой заголовок: «Основы программирования в командной оболочке shell», потому что нету там этих «основ». Для основ не хватает хотя бы перечисления базовых синтаксических конструкций из которых приведен лишь if. Содержание не соответствует заголовку, отсюда и критика.

A-234 ★★★★★
()
Ответ на: комментарий от Dark_Wizard

тогда не подскажете, как правильно обработать пробелы в именах фалов в конструкции типа

mount флешка /mnt arr=( `find /mnt -name \*.что-то` )

for $name in ${arr[@]} ; do что-то делаем с каждым файлом done

А то вот сижу, пишу на шелле. поймал старый недочет в чужом коде, вот думаю, что делать... :)

gns ★★★★★
()
Ответ на: комментарий от gns

ifs-old=$IFS IFS=$'\n' for блабла done IFS=$ifs-old

Может не совсем так, но уже разберетесь. For теперь должен брать имена целиком, вместе с пробелами, ну и если что, то еще есть двойные кавычки.

anonymous
()
Ответ на: комментарий от anonymous

И сразу же fail: дефисы в именах переменных не того, на подчеркивание замените.

anonymous
()
Ответ на: комментарий от Jetty

Ответ неправильный. Мне надо доступаться до элементов по индексу.

Типа вывалить пользователю менюху с возможностью выбора файла по его номеру. Или IFS устанавливать или массив формировать не так.

gns ★★★★★
()
Ответ на: комментарий от A-234

>Тогда не нужно было давать такой заголовок: «Основы программирования в командной оболочке shell», потому что нету там этих «основ». Для основ не хватает хотя бы перечисления базовых синтаксических конструкций из которых приведен лишь if. Содержание не соответствует заголовку, отсюда и критика.

Полностью согласен. Для новичка не годится.

igneus
()
Ответ на: комментарий от CanSee

>О чём бы ни была тема, в первых постах обязательно будет «не нужно» и «закопайте».

Ну так сколько людей столько и троллей.

И да, статья таки не нужна. По сабжу куча хорошей литературы, причем на русском.

yaroslav
()
Ответ на: комментарий от CanSee

>>оболочка не нужна

Старая добрая ЛОРовская традиция. О чём бы ни была тема, в первых постах обязательно будет «не нужно» и «закопайте». Наверное, если появится новость о выходе новой версии ядра Linux, там тоже будет «линукс не нужен», «закопайте ядро, без него всё работает лучше» и т.п.

Ура, к нам в штат взяли капитана, превентивно помогать заблудшим новичкам!

t184256 ★★★★★
()
Ответ на: комментарий от CanSee

>Наверное, если появится новость о выходе новой версии ядра Linux, там тоже будет «линукс не нужен», «закопайте ядро, без него всё работает лучше» и т.п.

Что значит «если»? Именно так и пишут, Linux RIP, закопайте и т.д. Правда на такую толстоту редко кто реагирует, но все же изредка попадаются лулзы.

anonymous
()
Ответ на: комментарий от gns

> for $name in ${arr[@]} ; do что-то делаем с каждым файлом done

А то вот сижу, пишу на шелле. поймал старый недочет в чужом коде, вот думаю, что делать... :)

Переписать все нафиг на что-нибудь более вменяемое типа Руби-Питон-Перл :)

AlexLorovitch
()
Ответ на: комментарий от AlexLorovitch

Отказать. Есть шелл и бизибокс.

gns ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.