Skip to content

Latest commit

 

History

History
129 lines (93 loc) · 4.44 KB

1.3.3.1 Bash.md

File metadata and controls

129 lines (93 loc) · 4.44 KB

Bash (поверх sh)

Bash: “Bourne again shell”. Есть много оболочек, которые могут выполнять команды UNIX, и та, которая используется в терминале Mac - Bash . Она была создана Брайаном Фоксом для операционной системы GNU и является альтернативой Bourne Shell. Она служит интерфейсом между пользователем и ядром, который изолирует пользователя от сложности функций ядра.

Базовые скрипты

Пример скрипта в терминале:

mcd() {
mkdir -p "$1"
cd "$1"
}mcd testFoldertestFolder 

Создать исполняемый файл:

vim python.sh -> Enter script -> chmod +x python.sh -> ./python.sh

cat python.py 
#!/usr/bin/python3
print("hello")

#! - Шебанг указывает на выполнение бинарного файла из этой директории (/bin). Н/р: #!/usr/bin/env python3

Для проверки где происходит исполнение скрипта на нужном нам языке, пишем which (название языка/команды). Чтобы дать права на исполнение созданному файлу нужно написать команду chmod +x (название файла)

Можно использовать #!/usr/bin/env bash -x для получения вывода в консоль самого скрипта.

Операторы

Таблица операторов:

Cимвол Значение
~ Домашняя директория
# Коммент
$ Переменные выражения
& Фоновая задача
() Вызов subshell внутри скобок
! Логическое нет
'' Строгое цитирование текста. echo 'Hatter\'s tea party' выведет Hatter's tea party
"" Слабое цитирование - командная строка может выполнять некоторые операторы внутри. echo "Hatter\'s tea party" выведет Hatter's tea party
\ Цитируй следующий символ. * равносильно '*'
< Перенаправление ввода
> Перенаправление вывода

Аргументы $:

print_args() {
echo $0 # — имя текущего скрипта.
echo $1 # - первый переданный аргумент функции. $2...$n
echo $_ # — последняя аргумент последней команды.
echo $@ # - показать все аргументы
echo $# # - показать количество аргументов
echo $$ # - показать PID (process ID)
echo $? # — статус выхода последней выполненной команды
}

Вывод:

print_args 1 2 3 4 helloWorld!
print_args
1
1 2 3 4 helloWorld!
5
877
0

Сравнение

Photo

[20 -eq 20] = true

Переменные выражения

Output_1: Hello to

NAME=${1}
echo "Hello to $NAME"

Output_2: Error: no name given

NAME=${1?Error: no name given}
echo "Hello to $NAME"

Output_3: Hello to ME

NAME=${1:-ME}
echo "Hello to $NAME"

Ввод с консоли

echo "Enter your name"
read name
echo "Hello, $name"

name - переменная присваемая введенном тексту из консоли после исполнения файла и вывода "Enter your name".


1.3.2 Text Editors Folder | Back To iOSWiki Contents | 1.3.3.2 Link Theme