Поиск по сайту:

Два простых приема с помощью сценариев оболочки для повышения производительности [Linux]

Одна из лучших особенностей командной строки Linux — это возможность создавать сценарии, которые облегчают вашу жизнь. На самом базовом уровне сценарий оболочки представляет собой список команд, выполняемых одна за другой, как если бы вы сами ввели их в командной строке. Хотя программирование оболочки (например, оболочки Bash) может быть таким же сложным, как и программирование на других языках, проще освоить несколько основных приемов, которые можно использовать, чтобы повысить эффективность работы.

Примечание. Хотя вы сможете сразу же воспользоваться этими советами, у нас есть отличное руководство для начинающих по написанию сценариев оболочки Linux, к которому вы можете обратиться за более подробной информацией.

Основы основ

У вас уже есть все необходимое, чтобы воспользоваться этими приемами в любом современном дистрибутиве Linux: текстовый редактор и оболочка (здесь мы будем использовать оболочку Bash). Откройте текстовый редактор, и вы готовы писать сценарии. Вы будете сохранять сценарии в виде простых текстовых файлов... некоторые люди предпочитают использовать расширение файла «.sh», чтобы облегчить идентификацию сценариев.

Вам также необходимо немного узнать о синтаксисе или формате сценариев оболочки. Вам нужно запомнить одну вещь: поместить следующую строку вверху каждого скрипта:

#!/bin/bash

Когда вы запускаете сценарий из командной строки, эта строка сообщает вашей текущей оболочке, какую другую оболочку использовать для его запуска, если они отличаются. Еще вам нужно помнить, что ваш сценарий должен быть исполняемым, что мы и сделаем через минуту. А пока давайте создадим новый полезный скрипт.

Сценарий, позволяющий действовать немного по-другому

Руководство для начинающих, приведенное выше, отлично объясняет переменные и показывает, как принимать аргументы (любые слова/фразы, которые вы вводите после имени команды) и использовать их. Но вы также можете использовать так называемые переменные среды, чтобы изменить порядок работы ваших программ. Например, я говорю по-японски, и хотя программы Linux могут обрабатывать ввод на японском языке, иногда я испытываю ностальгию по японскому пользовательскому интерфейсу. Для «Языка» существуют переменные среды, которые определяют, на каком языке отображаются программы. Например, если я хочу вернуться в свои дни просмотра веб-страниц в Японии, я бы использовал следующее:

LANG="ja_JP" firefox

Но я часто забываю, должна ли эта переменная среды быть «LANG», «LC_TYPE» или одной из других 10 локальных переменных. Я бы предпочел просто «японизировать это». Поэтому я создал сценарий Bash под названием «jpit» следующим образом:

#!/bin/bash
LANG="ja_JP" $1

Появятся переведенные японские меню и интерфейс (вы можете увидеть английский пользовательский интерфейс ниже слева, а результат при запуске с помощью "jpit" - справа).

Затем я просто сделал скрипт исполняемым со следующим:

chmod +x /home/aaron/bin/jpit

Я поместил это в свой каталог ~/bin, потому что это находится в моем PATH, и теперь я могу выполнить это из любого терминала или KRunner и вставить любое имя приложения, которое принимает переменную «LANG». Вы можете использовать подобный сценарий для запуска программы с другим набором параметров, будь то переменные среды, флаги командной строки или файлы ввода/вывода.

Скрипт для того, чтобы сделать то, а затем то

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

sudo apt-get update
sudo apt-get upgrade

К счастью, есть способ выполнить их как одну команду, а затем «уйти», пока они все не завершатся:

sudo apt-get update && sudo apt-get upgrade

&& в этой команде означает, что вторую команду следует запускать только после первой и только в том случае, если первая завершится без ошибок. Однако приведенные выше команды apt-get, вероятно, спросят вас, хотите ли вы установить некоторые зависимости, так чем же это полезно?

Давайте вернемся к нашему старому другу Пандоку. В предыдущих статьях мы видели, что у Pandoc есть возможность конвертировать Markdown в другие форматы. Но что, если вы хотите преобразовать его в HTML, ODT, DOCX и электронную книгу одновременно? Просто: создайте сценарий оболочки со следующим:

#!/bin/bash
pandoc -r markdown -w html -o $1.html $1 &&
pandoc -r markdown -w docx -o $1.docx $1 &&
pandoc -r markdown -w odt -o $1.odt $1 &&
pandoc -r markdown -w epub -o $1.epub $1

При этом будет принят любой документ Markdown, который вы ему дадите в качестве аргумента, и сгенерирует каждый из желаемых форматов, запуская команду Pandoc по одному формату за раз. Одна команда, четыре конечных продукта. Вот это эффективность!

Вы даже можете комбинировать вышеперечисленные параметры для создания всевозможных полезных сценариев. Потому что, хотя мы все любим командную строку, нет причин тратить на нее больше времени, чем нужно...

Статьи по данной тематике