update bash scripts cheatsheet

This commit is contained in:
cheatsnake 2022-08-27 18:48:32 +03:00
parent df045b5472
commit 02c62b5fde

View File

@ -27,15 +27,15 @@ echo "Hello world"
Запуск скрипта: Запуск скрипта:
``` ```
bash script.sh $ bash script.sh
``` ```
Скрипт можно сделать исполняемым файлом и запускать без команды `bash`: Скрипт можно сделать исполняемым файлом и запускать без команды `bash`:
``` ```
chmod +x script.sh $ chmod +x script.sh
``` ```
``` ```
./script.sh $ ./script.sh
``` ```
## Комментарии ## Комментарии
@ -81,11 +81,11 @@ echo "2 переменная: $V2"
echo "3 переменная: $V3" echo "3 переменная: $V3"
``` ```
``` ```
> user:~$ bash script.sh $ bash script.sh
> hello world some other text $ hello world some other text
> 1 переменная: hello 1 переменная: hello
> 2 переменная: world 2 переменная: world
> 3 переменная: some other text 3 переменная: some other text
``` ```
Флаг `-a` позволяет создать массив в который будут записываться строки пользовательского ввода разделенные пробелом: Флаг `-a` позволяет создать массив в который будут записываться строки пользовательского ввода разделенные пробелом:
@ -94,9 +94,9 @@ read -a NAMES
echo "Массив имён: ${NAMES[0]}, ${NAMES[1]}, ${NAMES[2]}" echo "Массив имён: ${NAMES[0]}, ${NAMES[1]}, ${NAMES[2]}"
``` ```
``` ```
> user:~$ bash script.sh $ bash script.sh
> Alex Mike John Alex Mike John
> Массив имён: Alex, Mike, John Массив имён: Alex, Mike, John
``` ```
Флаг `-p` позволяет не переносить пользовательский ввод на следующую строку. Флаг `-p` позволяет не переносить пользовательский ввод на следующую строку.
@ -107,9 +107,9 @@ read -p "Введите ваш логин: " LOGIN
read -sp "Введите ваш пароль: " PASSWD read -sp "Введите ваш пароль: " PASSWD
``` ```
``` ```
> user:~$ bash script.sh $ bash script.sh
> Введите ваш логин: bash_hacker Введите ваш логин: bash_hacker
> Введите ваш пароль: Введите ваш пароль:
``` ```
## Передача аргументов ## Передача аргументов
@ -121,8 +121,8 @@ read -sp "Введите ваш пароль: " PASSWD
echo "Аргумент 1 - $1; aргумент 1 - $2; aргумент 1 - $3." echo "Аргумент 1 - $1; aргумент 1 - $2; aргумент 1 - $3."
``` ```
``` ```
> user:~$ bash script.sh hello test 1337 $ bash script.sh hello test 1337
> Аргумент 1 - hello; aргумент 1 - test; aргумент 1 - 1337. Аргумент 1 - hello; aргумент 1 - test; aргумент 1 - 1337.
``` ```
Нулевой аргумент всегда равен названию файла со скриптом: Нулевой аргумент всегда равен названию файла со скриптом:
@ -130,8 +130,8 @@ echo "Аргумент 1 - $1; aргумент 1 - $2; aргумент 1 - $3."
echo "Вы запустили файл $0" echo "Вы запустили файл $0"
``` ```
``` ```
> user:~$ bash script.sh $ bash script.sh
> Вы запустили файл script.sh Вы запустили файл script.sh
``` ```
Все аргументы можно положить в именованный массив: Все аргументы можно положить в именованный массив:
@ -140,8 +140,8 @@ args=("$@")
echo "Полученные аргументы: ${args[0]}, ${args[1]}, ${args[2]}." echo "Полученные аргументы: ${args[0]}, ${args[1]}, ${args[2]}."
``` ```
``` ```
> user:~$ bash script.sh some values 123 $ bash script.sh some values 123
> Полученные аргументы: some, values, 123 Полученные аргументы: some, values, 123
``` ```
> `@` - это название массива по умолчанию, который хранит все аргументы (за исключением нулевого) > `@` - это название массива по умолчанию, который хранит все аргументы (за исключением нулевого)
@ -165,15 +165,15 @@ else
fi fi
``` ```
``` ```
> user:~$ bash script.sh $ bash script.sh
> Введите ваш возраст: Введите ваш возраст:
> 19 19
> Доступ разрешен Доступ разрешен
>
> user:~$ bash script.sh $ bash script.sh
> Введите ваш возраст: Введите ваш возраст:
> 16 16
> Доступ запрещен Доступ запрещен
``` ```
Условий может быть сколько угодно много, для этого используется конструкция `elif`, которая также как `if` может проверять условия: Условий может быть сколько угодно много, для этого используется конструкция `elif`, которая также как `if` может проверять условия:
@ -273,8 +273,6 @@ if [[ -r $file || -w $file ]]
## Арифметические операторы ## Арифметические операторы
Предназначены для выполнения операций над числами.
```bash ```bash
num1=10 num1=10
num2=5 num2=5
@ -299,4 +297,4 @@ echo $(expr $num1 / $num2) # 2
echo $((num1 % num2)) # 0 echo $((num1 % num2)) # 0
echo $(expr $num1 % $num2) # 0 echo $(expr $num1 % $num2) # 0
``` ```
> Обратите внимание, что при использовании умножения с ключевым словом `expr` необходимо использовать косую черт. > Обратите внимание, что при использовании умножения с ключевым словом `expr` необходимо использовать косую черту.