Bash скрипты
При запуске скрипта создается дочерняя консоль, в ней выполняется скрипт и результат возвращается в консоль.
Можно запускать через source, имя (если . в PATH), ./... , и ./ ... & С фоновой задачей аккуратно с объемом вывода, ^C не работает.
Функции
function functname
{
shell commands
}
functname ( )
{
shell commands
}
Используют позиционные переменные.
functname "one" $7
Если внутри функции нужна локальная переменная, то local var1="something", иначе используется глобальная переменная.
Программы для работы с функциями
declare | -f список функций с описанием |
-F только имена функций | |
unset fname | удалить функцию из памяти |
type fname | Описание функции |
-t выведет тип |
Приоритет при вызове из консоли
- Aliases
- Служебные слова типа if, ...
- Функции
- Встроенные команды типа cd, type, ...
- Скрипты и исполняемые команды
Переменные
Описывается $varname или ${varname} Например есть переменная UID. Для вывода 0_ нужно использовать echo ${varname}_
$1, $2, ... | Позиционные параметры |
$* | Строка, содержащая все параметры через пробел |
$@ | Равна N строкам-параметрам. Актуально при передаче в функции. |
$# | Количество аргументов |
Определение глобальной переменной: var1="something"
Обработка переменных
${varname:-word } | Если переменная не существует или существует но пустая - вернет word |
${varname:=word} | Если переменная не существует или существует но пустая - присвоит ей word и вернет word |
${varname:?message} | Если переменная не существует или существует но пустая - выведет сообщение и завершит скрипт |
${varname:+word} | Если переменная существует или пустая - вернет word, иначе null |
${varname:offset:length} |
Срез. count=frogfootman ${count:4} вернет footman ${count:4:4} вернет foot |