# L5. Bash Scripting. Part 5
## Linux signals
| Num | Name | Job |
| --- | ------- |:------------------------------------------------------------------------------:|
| 1 | SIGHUP | Закрытие терминала |
| 2 | SIGINT | Сигнал остановки процесса пользователем с терминала (CTRL + C) |
| 3 | SIGQUIT | Сигнал остановки процесса пользователем с терминала (CTRL + \) с дампом памяти |
| 9 | SIGKILL | Безусловное завершение процесса |
| 15 | SIGTERM | Сигнал запроса завершения процесса |
| 17 | SIGSTOP | Принудительная приостановка выполнения процесса, но не завершение его работы |
| 18 | SIGSTP | Приостановка процесса с терминала (CTRL + Z), но не завершение работы |
| 19 | SIGCONT | Продолжение выполнения ранее остановленного процесс |
```bash=
kill processID
```
---
## Running Linux Bash scripts in background mode
```bash=
#!/bin/bash
total=1
while [ $total -le 3 ]; do
sleep 2
total=$(($total + 1))
done
```
```bash=
$ ./myscipt &
jobs
bg
fg 1
```
---
## Functions
```bash=
functionName() {
}
```
```bash=
#!/bin/bash
myfunc() {
echo "Using functions"
}
total=1
while [ $total -le 3 ]; do
myfunc
total=$(($total + 1))
done
echo "Loop finished"
myfunc
echo "End of the script"
```
#### return command
```bash=
#!/bin/bash
myfunc() {
read -p "Enter a value: " value
echo "adding value"
return $(($value + 10))
}
myfunc
echo "The new value is $?"
```
#### Function output
```bash=
#!/bin/bash
myfunc() {
read -p "Enter a value: " value
echo $(($value + 10))
}
result=$(myfunc)
echo "The value is $result"
```
---
## Variables
* Global
* Local
#### Global
```bash=
#!/bin/bash
myfunc() {
input=$(($input + 10))
}
read -p "Enter a number: " input
myfunc
echo "The new value is: $input"
```
#### Local
```bash=
#!/bin/bash
myfunc() {
local tmp=$(($val + 10))
echo "The Temp from inside function is $tmp"
}
tmp=4
myfunc
echo "The temp from outside is $tmp"
```