mirror of
https://github.com/cheatsnake/backend-cheats.git
synced 2024-11-23 03:08:50 +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`:
|
Скрипт можно сделать исполняемым файлом и запускать без команды `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` необходимо использовать косую черту.
|
Loading…
Reference in New Issue
Block a user