Здесь следует отметить, что каналы UNIX в rc нелинейны. Это означает, что можно передать выходные данные двух активных программ на вход одной программы. Например, мы можем запустить следующую команду, чтИспользование и написание базовых сценариев Rc
cmp <{echo hello} <{echo helloo}
Читайте также: Что такое Gentoo Linux и как его установить
Объединение команд в Rc Shell
Помимо использования каналов UNIX, в оболочке rc также можно объединять различные команды. Это позволяет запускать программы последовательно без необходимости вводить их в отдельные строки. Посмотрите эту команду, которая позволяет запустить less
после запуска echo
:
echo hello-world >> hello.txt; less hello.txt
Кроме того, rc
Переменные и файловые операторы
ния программы перед переходом к соседней команде. Это может быть полезно, если ваша программа зависит от успеха или неудачи других программ.
Для этого rc предоставляет два оператора: &&
» и ||
. Это специальные символы, которыми можно заменить точку с запятой.
- Оператор
&&
сообщает rc о необходимости связывать и запускать программы, пока команда слева выполняется успешно. Это полезно в ситуациях, когда вам нужно, чтобы вся цепочка работала правильно.
- Оператор
||
сообщает rc о необходимости связывания и запуска программ, если команда слева не запускается. В отличие от предыдущего оператора, это невероятно полезно, если вы пытаетесь исправить проблемы в своих скриптах и программах.
Зная это, вы можете затем использовать эти операторы для создания команд, которые могут ставить в очередь и проверять программы. Например, мы укажем rc запускать touch
только в том случае, если mkdir
выполняется успешно:
mkdir ./hello && touch ./hello/world
Читайте также: Как проверить историю Sudo в Linux
Использование строк и списков в Rc Shell
Одним из самых больших различий между Bash и оболочкой rc является то, что последняя ориентирована на упрощение использования обычного текста. В традиц
Использование UNIX Pipes в Rc Shell
объявлять в функциях и переменных.
Эта проблема частично связана с тем, что в Bash существует два способа объявления строки. Текст можно заключить как в одинарные, так и в двойные кавычки, чтобы рассматривать слово как строку.
Таким образом, rc стремится уменьшить эту сложность, используя только одинарные кавычки при объявлении строк. Это позволит вам без проблем использовать специальные и управляющие символы.
С помощью этой команды мы превратим скобку в строку без escape-символов:
# rc
hello='[world]'
# bash
hello='\[world\]'
Кроме того, rc также позволяет вам манипулировать этими строковыми переменными и напрямую компилировать их в виде списка. Это может быть особенно полезно, если вы хотите создать сценарий, хранящий переменные в простом массиве.
Для этого все, что вам нужно сделать, это заключить группу строк в круглые скобки. Таким образом, мы напишем следующее, чтобы создать переменную с 5 элементами внутри:
shop=(eggs milk cheese rice beef)
Зная это, вы сможете использовать различные команды для извлечения данных из массива. Например, эта команда извлечет первые три элемента массива:
Читайте также: Как исправить проблему «Не могу ввести терминал в Linux»
Базовое управление потоком данных в Rc Shell
Помимо простой оболочки, rc также явля
Объединение команд в Rc Shell
ия. Это означает, что он способен не только выполнять базовые манипуляции со строками, но и выполнять логические ветвления, аналогичные Питон .
Rc позволяет легко создавать операторы if-then, циклы for, а также дает возможность определять сложные функции. Это может быть невероятно полезно, если вы только начинаете заниматься программированием.
Читайте также: Как использовать команду dd в Linux
Использование условных операторов
Одной из основных особенностей языков программирования является возможность создания условных операторов. Это структуры, которые сообщают программе, что делать в зависимости от обстоятельств, в которых она находится. Например, вы можете указать программе запускаться только в том случае, если ее значение равно 1.
<
Вы можете написать условный оператор для rc в одну строку:
- Поле «условие» представляет собой список команд, которые rc попытается запустить. Это работает так: любая программа, которая успешно запускается сама по себе, предоставляет значение «истина».
- Поле «программа», с другой стороны, зависит от значения «истина» поля условия для запуска любой команды, которую вы ему даете.
В отличие от Bash, этот подход позволяет использовать практически любой тип программы для условного оператора сценария. Например, вы можете указать rc запускать этот оператор только в том случае, если в текущем каталоге существует файл hello.world:
if ( test -r hello.world ) echo "there is a hello world!"
Создание простых циклов for
Помимо написания условных операторов, rc также можно использовать для создания повторяющихся сценариев посредством циклов. Цикл — это структура, позволяющая повторять определенную команду заданное количество раз.
Подобно условным операторам, синтаксис цикла можно записать в одну строку:
for ( i in step ) program
- Поле «шаг» может быть либо переменной, либо программой, которую rc будет выполнять одну за другой. Например, написание списка здесь укажет rc про
Использование строк и списков в Rc Shell
рограмма» — это строка кода, которую вы хотите, чтобы rc запускал каждый раз, когда он проходит через поле шага.
Создание функций в Rc
Наконец, в rc также можно создать общую функцию. Подобно другим языкам программирования, это структура, которую вы можете определить для выполнения специальной задачи.
Например, следующая команда создаст функцию, которая использует как условные операторы, так и циклы for:
fn hello {
for (i in ./hello/) if(test -r ./hello/$i) echo "There is a file here!"
}
Хотя это может показаться сложным, написание функции невероятно просто. По своей сути базовый синтаксис функции rc выглядит примерно так:
- Поле «имя» сообщает rc метку конкретной функции. Это может быть особенно полезно, если вы хотите повторно использовать ту же функцию для следующей команды.
- Поле «функция», с другой стороны, содержит все переменные и команды, которые вы хотите запустить.
Читайте также: Как выбрать дистрибутив Linux, не перепробовав их все
Часто задаваемые вопросы
Можно ли узнать количество элементов в списке в Rc?
Да! Можно проверить общее количество переменных в списке rc. Подобно получению элементов списка, вы можете сделать это, добавив символ двойной кавычки («)» перед именем списка. Например, мы можем ввести echo $"shop
, чтобы вывести общее количество элементов, сохраненных в переменной магазина.
Можно ли в Rc создавать бесконечные циклы?
Да! В оболочке rc можно создавать циклы, которые не заканчиваются. Хотя приведенные выше примеры показывают конечные циклы, создание бесконечных циклов также просто. Для этого вам нужно всего лишь удалить любое условие в поле шага. Однако следует отметить одну важную вещь: вам все равно необходимо поставить скобку в поле шага для бесконечного цикла. Это связано с тем, что оболочка rc предназначена для распознавания только функций с определенным синтаксисом и структурой. Например, команда for(i) echo hello
сообщит rc печатать слово «привет» бесконечно.
Можно ли передавать ошибки в Rc, аналогичные >2 в Bash?
Да! По умолчанию rc предоставляет возможность отделить любой диагностический вывод от программы. Это может быть полезно, если вы пытаетесь устранить проблему с запущенным скриптом или программой. Имея это в виду, вы можете разделить этот тип вывода, используя файловый оператор «>[2=1]». Например, мы можем вывести любые ошибки в нашем скрипте, выполнив следующую команду: ./script.rc >[2=1] ./error.log
.
Базовое управление потоком данных в Rc Shellно:
Unsplash Все скриншоты сделаны Рамсесом Редом
Использование условных операторов
Создание простых циклов for
Создание функций в Rc
Часто задаваемые вопросы
Можно ли узнать количество элементов в списке в Rc?
Можно ли в Rc создавать бесконечные циклы?
Можно ли передавать ошибки в Rc, аналогичные >2 в Bash?