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