Shell script — различия между версиями
Andy (обсуждение | вклад) (→Общая информация) |
Andy (обсуждение | вклад) (→Общая информация) |
||
Строка 22: | Строка 22: | ||
[root@vm-01 ~]# echo $PATH | [root@vm-01 ~]# echo $PATH | ||
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin | ||
+ | [root@vm-01 ~]# | ||
+ | </syntaxhighlight> | ||
+ | Поскольку текущая директория <code>/root</code> отсутствует в переменной <code>$PATH</code>, то запускать скрипты необходимо следующим образом: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | [root@vm-01 ~]# ls -lahi test.sh | ||
+ | 33969143 -rwxr-xr-x. 1 root root 34 Mar 26 10:38 test.sh | ||
+ | [root@vm-01 ~]# ./test.sh | ||
+ | Hello, world! | ||
[root@vm-01 ~]# | [root@vm-01 ~]# | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия 10:38, 26 марта 2018
Основы создания скриптов на bash
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash
,bash-completion
,vim-minimal
,vim-enhanced
Общая информация
Любой скрипт, начинается с "магической строки" - сигнатуры, которая говорит командному интерпретатору как обрабатывать файл.
Для скриптов, такая последовательность носит называние she-bang
(сокращение от sharp-bang
):
#!
Соответственно, если файл должен обрабатывать bash
, то это необходимо указать после "магической строки". То есть, she-bang
будет иметь следующий вид:
#!/bin/bash
Если скрипт предназначен для пользователя, то должны быть выставлен необходимый владелец файла, и права на запуск скрипта 755
. Поскольку
скрипт является выполняемым, то по первым литерам названия, коммандный интерпертатор производит поиск названия в переменной $PATH
,
соответственно, лучше выбрать имя для скрипта, которое не совпадает с имеющейся утилитой. Для просмотра переменной $PATH
надо выполнить следующую команду:
[root@vm-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@vm-01 ~]#
Поскольку текущая директория /root
отсутствует в переменной $PATH
, то запускать скрипты необходимо следующим образом:
[root@vm-01 ~]# ls -lahi test.sh
33969143 -rwxr-xr-x. 1 root root 34 Mar 26 10:38 test.sh
[root@vm-01 ~]# ./test.sh
Hello, world!
[root@vm-01 ~]#