Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
bash:developing [2016/02/17 00:07] – [tput] 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 ===== | ||
- | |||
- | ====== test ====== | ||
- | |||
- | * Параметры: | ||
- | * -f - Наличие файла | ||
- | * -d - Наличие директории | ||
- | * -e - | ||
- | * -z - Наличие данных в строке | ||
- | * Сокращенный вариант **[ ]** | ||
- | * http:// | ||
====== tput ====== | ====== tput ====== | ||
Строка 213: | Строка 402: | ||
===== Y ===== | ===== Y ===== | ||
- | ====== Ссылки ====== | ||
- | |||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * https:// | ||
- | * [[system: | ||
- | * [[bash: | ||
- | * [[bash: | ||
- | * http:// | ||
- | * [[http:// | ||
- | * http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * http:// | ||
- | |||
- | ====== Видео уроки ====== | ||
- | * https:// | ||