mirror of
https://github.com/cheatsnake/backend-cheats.git
synced 2024-11-22 18:54:11 +03:00
update bash scripts cheatsheet
This commit is contained in:
parent
df045b5472
commit
02c62b5fde
@ -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` необходимо использовать косую черту.
|
Loading…
Reference in New Issue
Block a user