update bash scripts cheatsheet

This commit is contained in:
cheatsnake 2022-08-28 18:40:13 +03:00
parent b7a4dc3992
commit df045b5472

View File

@ -99,9 +99,9 @@ echo "Массив имён: ${NAMES[0]}, ${NAMES[1]}, ${NAMES[2]}"
> Массив имён: Alex, Mike, John
```
Флаг `-p` позволяет не переносить пользовательский ввод на следующую строку
Флаг `-p` позволяет не переносить пользовательский ввод на следующую строку.
Флаг `-s` позволяет скрыть вводимые символы (как это происходит при вводе пароля)
Флаг `-s` позволяет скрыть вводимые символы (как это происходит при вводе пароля).
```sh
read -p "Введите ваш логин: " LOGIN
read -sp "Введите ваш пароль: " PASSWD
@ -198,9 +198,9 @@ fi
> Обратите внимание, что после конструкций `if` и `elif` всегда следует строчка с ключевым словом `then` <br>
> Так же не забывайте отделять условия пробелами внутри фигурных скобок -> `[ condition ]`
## Операторы для условий
## Операторы условий
Для цифр и строк могут использоваться разные операторы сравнения. Полные их списки с примерами приведены в таблицах ниже
Для цифр и строк могут использоваться разные операторы сравнения. Полные их списки с примерами приведены в таблицах ниже.
> Обратите внимания, что разные операторы используются с определенными скобками
### Операторы сравнения для чисел
@ -230,7 +230,7 @@ fi
| -z | проверка пустая ли строка | if [ -z $str ] |
| -n | проверка есть ли в строке хоть один символ | if [ -n $str ] |
Так же существуют операторы для проверки различных условий над файлами
Так же существуют операторы для проверки различных условий над файлами.
### Операторы для проверки файлов
@ -243,3 +243,60 @@ fi
| -r | проверяет, доступен ли файл для чтения | if [ -r $file ] |
| -w | проверяет, доступен ли файл для записи | if [ -w $file ] |
| -x | проверяет, является ли файл исполяемым | if [ -x $file ] |
## Логические операторы
Условия с оператором "И" возвращают истину только в том случае, когда все условия истины.
> Существует несколько вариантов написания условий с логическими операторами
```sh
if [ $age -ge 18 ] && [ $age -le ]
```
```sh
if [ $age -ge 18 -a $age -le ]
```
```sh
if [[ $age -ge 18 && $age -le ]]
```
Условия с оператором "ИЛИ" возвращают истину в том случае, когда хотя бы одно условие истинно.
```sh
if [ -r $file ] || [ -w $file ]
```
```sh
if [ -r $file -o -w $file ]
```
```sh
if [[ -r $file || -w $file ]]
```
## Арифметические операторы
Предназначены для выполнения операций над числами.
```bash
num1=10
num2=5
# Сложение
echo $((num1 + num2)) # 15
echo $(expr $num1 + $num2) # 15
# Вычитание
echo $((num1 - num2)) # 5
echo $(expr $num1 - $num2) # 5
# Умножение
echo $((num1 * num2)) # 50
echo $(expr $num1 \* $num2) # 50
# Деление
echo $((num1 / num2)) # 2
echo $(expr $num1 / $num2) # 2
# Остаток от деления
echo $((num1 % num2)) # 0
echo $(expr $num1 % $num2) # 0
```
> Обратите внимание, что при использовании умножения с ключевым словом `expr` необходимо использовать косую черт.