Shell script — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
()
(Общая информация)
Строка 9: Строка 9:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!
 
#!
 +
</syntaxhighlight>
 +
Соответственно, если файл должен обрабатывать <code>bash</code>, то это необходимо указать после "магической строки". То есть, <code>she-bang</code>
 +
будет иметь следующий вид:
 +
<syntaxhighlight lang="bash">
 +
#!/bin/bash
 +
</syntaxhighlight>
 +
Если скрипт предназначен для пользователя, то должны быть выставлен необходимый владелец файла, и права на запуск скрипта <code>755</code>. Поскольку
 +
скрипт является выполняемым, то по первым литерам названия, коммандный интерпертатор производит поиск названия в переменной <code>$PATH</code>,
 +
соответственно, лучше выбрать имя для скрипта, которое не совпадает с имеющейся утилитой. Для просмотра переменной <code>$PATH</code>
 +
надо выполнить следующую команду:
 +
<syntaxhighlight lang="bash">
 +
[root@vm-01 ~]# echo $PATH
 +
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
 +
[root@vm-01 ~]#
 
</syntaxhighlight>
 
</syntaxhighlight>

Версия 10:35, 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 ~]#