Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| bash:developing [2016/02/17 00:05] – [test] mirocow | bash:developing [2023/06/24 12:36] (текущий) – [R] mirocow | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====== Bash ====== | ====== Bash ====== | ||
| + | ===== Файлы конфигурации: | ||
| + | |||
| + | ==== В чем отличие .bash_profile и .bashrc? ==== | ||
| + | |||
| + | .bash_profile загружается только при входе пользователя в систему (консольный вход, ssh), | ||
| + | в то время как | ||
| + | логина (запуск xterm). | ||
| ===== Переменные и параметры ===== | ===== Переменные и параметры ===== | ||
| Строка 19: | Строка 26: | ||
| * du -h 1 > ./log 2>&1 | * du -h 1 > ./log 2>&1 | ||
| - | * 1 - Поток вывода | + | |
| - | | + | |Наименование|Описание| |
| - | | + | |1| Поток вывода| |
| + | |2| Поток ошибок| | ||
| + | |&1|обозначает файловый дескриптор 1| | ||
| Строка 35: | Строка 44: | ||
| files=( "/ | files=( "/ | ||
| limits=( 10, 20, 26, 39, 48) | limits=( 10, 20, 26, 39, 48) | ||
| + | </ | ||
| + | |||
| + | ==== ARGV ==== | ||
| + | |||
| + | <code bash> | ||
| + | # ------------- SCRIPT ------------- # | ||
| + | |||
| + | #!/bin/bash | ||
| + | |||
| + | echo | ||
| + | echo "# arguments called with ----> | ||
| + | echo "# \$1 ----------------------> | ||
| + | echo "# \$2 ----------------------> | ||
| + | echo "# path to me ---------------> | ||
| + | echo "# parent path --------------> | ||
| + | echo "# my name ------------------> | ||
| + | echo | ||
| + | exit | ||
| + | |||
| + | # ------------- CALLED ------------- # | ||
| + | |||
| + | # Notice on the next line, the first argument is called within double, | ||
| + | # and single quotes, since it contains two words | ||
| + | |||
| + | $ / | ||
| + | |||
| + | # ------------- RESULTS ------------- # | ||
| + | |||
| + | # arguments called with ---> | ||
| + | # $1 ----------------------> | ||
| + | # $2 ----------------------> | ||
| + | # path to me --------------> | ||
| + | # parent path -------------> | ||
| + | # my name -----------------> | ||
| + | |||
| + | # ------------- END ------------- # | ||
| </ | </ | ||
| ===== B ===== | ===== B ===== | ||
| Строка 40: | Строка 85: | ||
| ==== case ==== | ==== case ==== | ||
| + | |||
| < | < | ||
| case " | case " | ||
| start) | start) | ||
| esac | esac | ||
| + | </ | ||
| + | |||
| + | ==== cut ==== | ||
| + | |||
| + | микропрограмма для работы с текстом | ||
| + | |||
| + | Параметры: | ||
| + | * -d | ||
| + | * -f(число) | ||
| + | |||
| + | Переименовывает все файлы вида thread_1_seq_35970.1752.876204343 в файлы вида arch_1_0000035970_869578613.arc | ||
| + | <code bash> | ||
| + | #! /bin/bash | ||
| + | FOUND=0 | ||
| + | for filename in * | ||
| + | do | ||
| + | echo " | ||
| + | |||
| + | if [ $? -eq $FOUND ]; then | ||
| + | part=`echo $filename | cut -d " | ||
| + | mv " | ||
| + | fi | ||
| + | |||
| + | done | ||
| </ | </ | ||
| ===== D ===== | ===== D ===== | ||
| Строка 58: | Строка 128: | ||
| [[system: | [[system: | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | |||
| + | Choice=`$Dialog --stdout --clear --menu " | ||
| + | retval=$? | ||
| + | |||
| + | case $retval in | ||
| + | 0) | ||
| + | esac | ||
| + | </ | ||
| ===== E ===== | ===== E ===== | ||
| ===== F ===== | ===== F ===== | ||
| Строка 104: | Строка 185: | ||
| ===== G ===== | ===== G ===== | ||
| ===== H ===== | ===== H ===== | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Choice=" | ||
| + | |||
| + | cat << EOF_CONFIG > $config | ||
| + | client | ||
| + | remote xxxxx | ||
| + | port 1194 | ||
| + | proto udp | ||
| + | dev tun | ||
| + | ns-cert-type server | ||
| + | tls-client | ||
| + | reneg-sec 60 | ||
| + | mtu-test | ||
| + | cipher AES-256-CBC | ||
| + | comp-lzo | ||
| + | persist-key | ||
| + | persist-tun | ||
| + | keysize 256 | ||
| + | nobind | ||
| + | explicit-exit-notify 2 | ||
| + | pkcs12 yyy/$Choice | ||
| + | EOF_CONFIG | ||
| + | |||
| + | echo $config | ||
| + | </ | ||
| ===== I ===== | ===== I ===== | ||
| Строка 160: | Строка 268: | ||
| ===== N ===== | ===== N ===== | ||
| ===== O ===== | ===== O ===== | ||
| + | |||
| + | ==== echo ==== | ||
| + | |||
| + | Вывод прогресс бара | ||
| + | <code bash> | ||
| + | $ echo -ne '##### | ||
| + | </ | ||
| + | |||
| ===== P ===== | ===== P ===== | ||
| ===== Q ===== | ===== Q ===== | ||
| ===== R ===== | ===== R ===== | ||
| + | |||
| + | <code bash> | ||
| + | $ IFS=' ' read -r -a DATABASES_SELECTED <<< | ||
| + | $ read str <<< | ||
| + | -x- | ||
| + | $ IFS="" | ||
| + | - x - | ||
| + | $ IFS= read str <<< | ||
| + | - x - | ||
| + | $ _ | ||
| + | </ | ||
| + | |||
| + | * IFS=";" | ||
| + | * set -- $line - разбиваем строку, | ||
| ===== S ===== | ===== S ===== | ||
| - | ==== status | + | |
| + | ==== select | ||
| + | |||
| + | <code bash> | ||
| + | select action in " | ||
| + | do | ||
| + | echo $action | ||
| + | test $action = " | ||
| + | done | ||
| + | </ | ||
| + | ===== T ===== | ||
| + | |||
| + | ====== test ====== | ||
| + | |||
| + | * Параметры: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Сокращенный вариант **[ ]** | ||
| + | |||
| + | |||
| + | ===== Применение в коде ===== | ||
| + | |||
| + | <code bash> | ||
| + | if [ $daynow != 1 ]; then | ||
| + | # .... | ||
| + | fi | ||
| + | |||
| + | if [ $daynow -ge 1 ] && [ $daynow -le 7 ]; then | ||
| + | # .... | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | Сравнение **-eq** с **==** | ||
| + | |||
| + | <code bash> | ||
| + | $ [ a == a ]; echo $? | ||
| + | 0 | ||
| + | |||
| + | $ [ a -eq a ]; echo $? | ||
| + | -bash: [: a: integer expression expected | ||
| + | 2 | ||
| + | </ | ||
| + | |||
| + | === status | ||
| Проверка статуса выполнения программы | Проверка статуса выполнения программы | ||
| Строка 180: | Строка 380: | ||
| fi | fi | ||
| </ | </ | ||
| - | ===== T ===== | ||
| - | ====== | + | ====== |
| - | * Параметры: | + | Команда tput инициализирует и управляет вашими сеансами работы с терминалом, |
| - | * -f - Наличие файла | + | |
| - | * -d - Наличие директории | + | |
| - | * -e - | + | |
| - | * -z - Наличие данных | + | |
| - | * Сокращенный вариант **[ ]** | + | |
| - | * http://www.ibm.com/ | + | |
| - | + | ||
| - | ====== tput ====== | + | |
| * tput hpa N — сдвиг курсора на N позиций | * tput hpa N — сдвиг курсора на N позиций | ||
| * tput cols получает ширину окна терминала | * tput cols получает ширину окна терминала | ||
| * tput cub 6 — сдвигает курсор на 6 позиций влево | * tput cub 6 — сдвигает курсор на 6 позиций влево | ||
| + | |||
| + | Также можно выставить цвет | ||
| + | |||
| + | * tput setaf 0..7 — цвет текста | ||
| + | * tput setab 0..7 — цвет фона | ||
| + | * tput sgr0 — сброс на дефолтный | ||
| + | |||
| + | Подробнее: | ||
| ===== U ===== | ===== U ===== | ||
| ===== V ===== | ===== V ===== | ||
| Строка 203: | Строка 402: | ||
| ===== Y ===== | ===== Y ===== | ||
| - | ====== Ссылки ====== | ||
| - | |||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * https:// | ||
| - | * [[system: | ||
| - | * [[bash: | ||
| - | * [[bash: | ||
| - | * http:// | ||
| - | * [[http:// | ||
| - | * http:// | ||
| - | * [[http:// | ||
| - | * [[http:// | ||
| - | * http:// | ||
| - | |||
| - | ====== Видео уроки ====== | ||
| - | * https:// | ||