Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
язык_командного_интерпретатора_bash [2013/05/27 15:22] 46.231.215.230 [обращение к массиву] |
язык_командного_интерпретатора_bash [2016/02/10 20:24] (текущий) |
||
---|---|---|---|
Строка 10: | Строка 10: | ||
переменные не типизированы | переменные не типизированы | ||
область видимости - весь код программы | область видимости - весь код программы | ||
- | при обращениие | + | при обращениие |
пример задания: | пример задания: | ||
- | PETM = 10 \\ | + | PERM=10 \\ |
echo $PERM\\ | echo $PERM\\ | ||
Строка 27: | Строка 27: | ||
- | MASS[0]=10 | + | MASS[0]=10\\ |
- | MASS[1]=11 | + | MASS[1]=11\\ |
- | MASS[2]=12 | + | MASS[2]=12\\ |
====== обращение к массиву ====== | ====== обращение к массиву ====== | ||
Строка 35: | Строка 35: | ||
echo ${MASS[0]} | echo ${MASS[0]} | ||
- | ''# | + | ''# |
- | MASS[0]=10 | + | MASS[0]=10\\ |
- | MASS[1]=11 | + | MASS[1]=11\\ |
- | echo ${MASS[0]} | + | echo ${MASS[0]}\\ |
- | echo " | + | echo " |
- | MASS2=(10,11,12,13,14) | + | MASS2=(10 11 12 13 14)\\ |
- | echo ${MASS2} | + | echo ${MASS2[2]}\\ |
+ | |||
+ | '' | ||
+ | | ||
+ | экспорт пере менных | ||
+ | ''# | ||
+ | STRING=" | ||
+ | echo $STRING\\ | ||
'' | '' | ||
+ | просмотр переменных окружения | ||
+ | ''# | ||
+ | clear\\ | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
- | + | ====== Чтение переменных ====== | |
- | + | read[переменная] | |
+ | # | ||
+ | read var1\\ | ||
+ | echo "Вы ввели $var1" | ||
+ | ====== Подстановочные переменные ====== | ||
+ | ''# | ||
+ | # Примеры подстановки\\ | ||
+ | clear\\ | ||
+ | echo " | ||
+ | DATE=`date`\\ | ||
+ | echo " | ||
+ | echo " | ||
+ | USERS=`who | wc -l`\\ | ||
+ | echo " | ||
+ | echo " | ||
+ | UP=$(date; uptime)\\ | ||
+ | echo " | ||
+ | echo " | ||
+ | '' | ||
+ | ====== Арифметические выражения ====== | ||
+ | #!/bin/bash | ||
+ | # Подстановка арифметических выражений | ||
+ | | ||
+ | |||
+ | echo " | ||
+ | |||
+ | echo " | ||
+ | |||
+ | |||
+ | ====== Условный оператор if ====== | ||
+ | |||
+ | |||
+ | ''# | ||
+ | |||
+ | # Пример if then else\\ | ||
+ | |||
+ | if rm test 2> /dev/null\\ | ||
+ | |||
+ | then\\ | ||
+ | |||
+ | echo " | ||
+ | |||
+ | else\\ | ||
+ | |||
+ | echo "Not deleted" | ||
+ | |||
+ | fi\\ | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | ====== Проверка условий test ====== | ||
+ | |||
+ | выкажение test обычно используют в квадратных скобках | ||
+ | |||
+ | проверка существования файла: | ||
+ | |||
+ | '' | ||
+ | #!/bin/bash \\ | ||
+ | if [ -f test.sh ]; then\\ | ||
+ | echo "File exist" | ||
+ | else\\ | ||
+ | echo "File not found" | ||
+ | fi\\ | ||
+ | '' | ||
+ | |||
+ | ''# | ||
+ | |||
+ | read A\\ | ||
+ | read B\\ | ||
+ | |||
+ | if [ $A -ge $B ] \\ | ||
+ | then \\ | ||
+ | echo 'A > B'\\ | ||
+ | else \\ | ||
+ | echo 'A < B'\\ | ||
+ | |||
+ | fi \\ | ||
+ | |||
+ | '' | ||
+ | |||
+ | для проверки на наличие файла, папки, ссылки и т.д. используются ключи: | ||
+ | |||
+ | -d Папка\\ | ||
+ | -e Существует (также -a)\\ | ||
+ | -f Стандартный файл\\ | ||
+ | -h Символьная ссылка (также -L)\\ | ||
+ | -p Именованный канал\\ | ||
+ | -r Доступный вам для чтенения\\ | ||
+ | -s Не пустой\\ | ||
+ | -S Сокет\\ | ||
+ | -w Доступный вам для записи\\ | ||
+ | -N Был изменен со времени последнего прочтения\\ | ||
+ | |||
+ | Сравнение чисел и строк: | ||
+ | |||
+ | Сравнение чисел происходит при помощи следующих операторов: | ||
+ | |||
+ | число1 -eq число2 — истина, | ||
+ | число1 -ne число2 — истина, | ||
+ | число1 -gt число2 — истина, | ||
+ | число1 -ge число2 — истина, | ||
+ | число1 -lt число2 — истина, | ||
+ | число1 -le число2 — истина, | ||
+ | |||
+ | | ||
+ | |||
+ | -n строка — истина, | ||
+ | -z строка — истина, | ||
+ | строка1 = строка2 — истина, | ||
+ | |||
+ | Так же в условных операторах можно использовать логическое ' | ||
+ | |||
+ | |||
+ | ====== Оператор выбора case ====== | ||
+ | |||
+ | для | ||
+ | |||
+ | '' | ||
+ | # | ||
+ | |||
+ | echo; echo " | ||
+ | read Keypress\\ | ||
+ | |||
+ | case " | ||
+ | [a-z] ) echo " | ||
+ | [A-Z] ) echo " | ||
+ | [0-9] ) echo " | ||
+ | * ) echo " | ||
+ | esac # Допускается указывать диапазоны символов в [квадратных скобках]\\ | ||
+ | '' | ||
+ | |||
+ | |||
+ | |||
+ | #!/bin/bash | ||
+ | '' | ||
+ | echo -e ' | ||
+ | |||
+ | read Keypress\\ | ||
+ | |||
+ | case " | ||
+ | [s] ) / | ||
+ | [r] ) / | ||
+ | [d] ) / | ||
+ | esac | ||
+ | '' | ||
+ | |||
+ | |||
+ | '' | ||
+ | # | ||
+ | |||
+ | echo -e " | ||
+ | |||
+ | read bukva\\ | ||
+ | echo -e " | ||
+ | echo "Вы ввели $bukva" | ||
+ | echo -e " | ||
+ | |||
+ | case " | ||
+ | |||
+ | a ) reboot ;;\\ | ||
+ | b ) useradd ;;\\ | ||
+ | * ) echo " | ||
+ | esac \\ | ||
+ | |||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Цикл For ====== | ||
+ | |||
+ | простой цикл | ||
+ | |||
+ | ''# | ||
+ | |||
+ | # Пример for\\ | ||
+ | |||
+ | for I in 1 2 3 4 5 6 7 8 9 10\\ | ||
+ | |||
+ | do\\ | ||
+ | |||
+ | echo " $I "\\ | ||
+ | |||
+ | touch $I.txt\\ | ||
+ | |||
+ | done\\ | ||
+ | |||
+ | exit 0\\ | ||
+ | '' | ||
+ | |||
+ | цикл для с выбором данных из файла | ||
+ | |||
+ | |||
+ | файл с данными | ||
+ | |||
+ | '' | ||
+ | roman\\ | ||
+ | alexander\\ | ||
+ | andrey\\ | ||
+ | yrii\\ | ||
+ | alexey\\ | ||
+ | '' | ||
+ | скрипт создания папок для пользователей | ||
+ | |||
+ | ''# | ||
+ | |||
+ | for I in `cat users`\\ | ||
+ | do \\ | ||
+ | mkdir $I\\ | ||
+ | done \\ | ||
+ | exit 0\\ | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | ====== Цикл While====== | ||
+ | |||
+ | |||
+ | # | ||
+ | # Primer while | ||
+ | X=1 | ||
+ | while [ $X -lt 10 ] | ||
+ | do | ||
+ | echo " | ||
+ | X=$(( $X+1 )) | ||
+ | done | ||
+ | exit 0 | ||
+ | |||
+ | ====== Оператор select ====== | ||
+ | |||
+ | |||
+ | '' | ||
+ | # | ||
+ | |||
+ | echo ' | ||
+ | |||
+ | select linux in " | ||
+ | do\\ | ||
+ | echo\\ | ||
+ | echo "Вы предпочитаете $linux." | ||
+ | echo "; | ||
+ | echo\\ | ||
+ | break # если ' | ||
+ | done\\ | ||
+ | |||
+ | exit 0\\ | ||
+ | |||
+ | '' |