Прежде всего давайте разберём, что такое script и для чего он нужен.
Script в переводе с английского - сценарий. Все мы смотрим фильмы, многие из нас - спектакли. Чтобы создать фильм/спектакль, сценаристы пишут к ним сценарии, на основании которых артисты, сценка за сценкой исполняют на сцене свои роли, из чего и складывается фильм/спектакль. Работа по созданию сценария довольно кропотливая, где нужно учесть всё до мелочей, чтобы в конечном итоге артисты могли выполнить задуманное сценаристом, а зритель увидел целостное произведение.
Подобным же образом пишутся скрипты для выполнения списка задач, которые пользователь составляет вместе (код), чтобы сделать их выполнение проще и быстрее в операционной системе. Для написания простых скриптов совсем не обязательно иметь образование программиста.
Для начала давайте создадим самый, что ни на есть, простейший скрипт-Shell для обновления системы.
Все действия я буду проводить с системе Ubuntu, но они применимы и к другим системам Linux, производных от Ubuntu. Для этого нам понадобятся: Текстовый редактор, чтобы наполнить его нужными задачами для создания скрипта (кода) и Терминал - для выполнения созданного скрипта. Эти инструменты установлены в любом дистрибутие Linux по умолчанию.
Итак, открываем текстовый редактор Gedit и вводим в него первые обязательные символы под названием shebang.
shebang в программировании, это последовательность из двух символов: решётки и восклицательного знака (#!) в начале файла скрипта. И добавляем к данным символам без пробелов /bin/sh - интерпретатор, где будет выполняться скрипт. /bin/sh - это обычно Bourne shell или совместимый интерпретатор командной строки, который передаёт "path/to/script" как первый параметр.
Первая обязательная строка скрипта будет выглядеть следующим образом:
#!/bin/sh
Далее, следующей строкой следует описание того, что должен выполнить наш первый скрипт/сценарий:
# Мой первый Script обновления Ubuntu
Знак решётки (#) в самом начале строки даёт понять интерпретатору/терминалу, что эту строку читать и выполнять не нужно. Строка нужна в коде данного скрипта для того чтобы сам создатель скрипта знал, что он собирается выполнить на данном отрезке/сценке в коде, чтобы не запутаться в дальнейшем, когда таких строк будет много. Такие строки с знаком решётки называются - закомментированные.
Далее в скрипте следуют выполняемые строки с командами, в данном случае для обновления системы Ubuntu:
sudo apt update
sudo apt upgrade -y
-y в конце второй команды даёт понять интерпретатору/терминалу, что это действие/команду нужно выполнить автоматически, без дополнительного подтверждения пользователем, нажатия клавиши Ввод. y - сокращённо от английского yes, т.е. да.
Вот и всё. Ваш первый скрипт создан. У вас должно получиться как на снимке:
Остаётся сохранить созданный файл/скрипт и дать ему Имя с обязательным расширением в конце - .sh. Расширение .sh присваивается исполняемому файлу.
Я дал ему Имя - обновление.sh, сохранив в Домашней папке пользователя:
Для того чтобы созданный файл/скрипт был исполняемый, ему нужно дать на это разрешение. Сделать это можно двумя способами.
1. Выполнить следующую команду в терминале:
sudo chmod +x обновление.sh
2. Либо открыть файловый менеджер в Домашней папке (где вы сохранили созданный скрипт), правый клик на файле, в контекстном меню - Свойства - Права и активировать пункт - Выполнение: Разрешить выполнение файла как программы:
Чтобы выполнить созданный скрипт, нужно открыть терминал ( о чём я писал в самом начале статьи, что терминал - необходимый атрибут/инструмент для выполнения скрипта), ввести sh, через пробел название скрипта - обновление.sh и нажать клавишу Ввод:
Либо в терминале вводим sh и перетаскиваем из файлового менеджера созданный файл с скриптом (также через пробел):
После того как путь к файлу отобразится после команды sh и пробела, достаточно нажать клавишу Enter (Ввод), чтобы выполнить обновление системы:
Теперь в любой момент вы можете сделать обновление системы созданным собственным скриптом.
Да, кто-то может возразить, что обновление системы не сложно сделать выполнением этих двух команд в терминале, зачем пыжиться и создавать какие-то скрипты? Всё верно. Но это пример создания простейшего скрипта, чтобы показать, что "не боги горшки обжигают" 😃.
Научившись писать и использовать простейшие скрипты, можно создать скрипт по настройке системы, с тем чтобы в случае переустановки системы могли воспользоваться созданным сценарием без необходимости искать каждый раз в сети сайты с подобными настройками.
Многие из вас, скорее всего, пользуются сайтами по настройке системы, типа тех что я публикую после выхода очередного релиза Ubuntu - Ubuntu после установки или подобными сайтами. Откройте один из таких сайтов: http://compizomania.blogspot.com/2016/04/ubuntu-1604.html, затем текстовый редактор для создания скрипта.
Для примера я сделал следующую заготовку.
В текстовом редакторе вводим первую обязательную строку:
#!/bin/bash
Далее закомментированные строки с описанием:
# Настройка Ubuntu после уставновки
# Обновление системы
Ниже следуют команды обновления системы:
sudo apt update
sudo apt upgrade -y
Строка описания: Добавление репозиториев:
# Добавление репозиториев
И добавляете необходимые репозитории для дальнейшей установки программного обеспечения:
sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y
sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y
После того как необходимые репозитории добавлены (повторюсь, у вас могут быть свои репозитории, у меня пример), необходимо обновить систему:
Строка с описанием:
# Обновление системы после подключения репозиториев
И команда на выполнение:
sudo apt update
Теперь, когда репозитории добавлены и система обновлена, наступила очередь в установке программ:
# Установка программ
Для установки программ достаточно один раз ввести команду sudo apt install, а затем через пробел в данную строку добавлять сколько угодно программ, главное чтобы они были правильно составлены. Если какая-то программа состоит из нескольких слов, её команда должна быть монолитной, т.е. все слова в ней должны вводится через чёрточку, например: unity-tweak-tool:
sudo apt install my-weather-indicator telegram skype lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y
Установка дополнительных кодеков
# Мультимедиа и кодеки
sudo apt install ubuntu-restricted-extras -y
Отключение о сбоях в системе
# Отключить отчёты о сбоях в системе
sudo sed -i "s/enabled=1/enabled=0/g" '/etc/default/apport'
Ну вот, пожалуй, и всё. Данный созданный файл сценария должен выглядеть следующим образом:
Необходимо сохранить его (нажать кнопку Сохранить) и дать Имя с расширением .sh. Я назвал его Настройка\ Ubuntu.sh (вы можете назвать по-другому, но обязвтельно с расширением .sh):
Делаем созданный скрипт исполняемым:
sudo chmod +x Настройка\ Ubuntu.sh
Для выполнения созданного скрипта введите в терминале sh и название созданного скрипта через пробел, либо sh, пробел и перетащить в терминал созданный файл, как объяснялось ранее в простейшем скрипте и нажмите клавишу Ввод, для его выполнения.
Примечание. Обратный слэш в команде Настройка\ Ubuntu.sh экранирует пробел в названии файла для терминала между двумя отдельными словами.
После того как скрипт будет выполнен, хранить его на будущее, для возможной переустановки системы и повторной настройки, лучше всего на отдельном разделе ж/диска в папке /home. Если таковой нет, то в облачном сервисе (Облачное хранилище данных) типа: DropBox, Облако Mail.Ru, Mega.co и т.п., чтобы в любой момент воспользоваться скриптом самому, либо помочь знакомым или родственникам в настройке системы.
Удачи.
Script в переводе с английского - сценарий. Все мы смотрим фильмы, многие из нас - спектакли. Чтобы создать фильм/спектакль, сценаристы пишут к ним сценарии, на основании которых артисты, сценка за сценкой исполняют на сцене свои роли, из чего и складывается фильм/спектакль. Работа по созданию сценария довольно кропотливая, где нужно учесть всё до мелочей, чтобы в конечном итоге артисты могли выполнить задуманное сценаристом, а зритель увидел целостное произведение.
Подобным же образом пишутся скрипты для выполнения списка задач, которые пользователь составляет вместе (код), чтобы сделать их выполнение проще и быстрее в операционной системе. Для написания простых скриптов совсем не обязательно иметь образование программиста.
Для начала давайте создадим самый, что ни на есть, простейший скрипт-Shell для обновления системы.
Все действия я буду проводить с системе Ubuntu, но они применимы и к другим системам Linux, производных от Ubuntu. Для этого нам понадобятся: Текстовый редактор, чтобы наполнить его нужными задачами для создания скрипта (кода) и Терминал - для выполнения созданного скрипта. Эти инструменты установлены в любом дистрибутие Linux по умолчанию.
Итак, открываем текстовый редактор Gedit и вводим в него первые обязательные символы под названием shebang.
shebang в программировании, это последовательность из двух символов: решётки и восклицательного знака (#!) в начале файла скрипта. И добавляем к данным символам без пробелов /bin/sh - интерпретатор, где будет выполняться скрипт. /bin/sh - это обычно Bourne shell или совместимый интерпретатор командной строки, который передаёт "path/to/script" как первый параметр.
Первая обязательная строка скрипта будет выглядеть следующим образом:
#!/bin/sh
Далее, следующей строкой следует описание того, что должен выполнить наш первый скрипт/сценарий:
# Мой первый Script обновления Ubuntu
Знак решётки (#) в самом начале строки даёт понять интерпретатору/терминалу, что эту строку читать и выполнять не нужно. Строка нужна в коде данного скрипта для того чтобы сам создатель скрипта знал, что он собирается выполнить на данном отрезке/сценке в коде, чтобы не запутаться в дальнейшем, когда таких строк будет много. Такие строки с знаком решётки называются - закомментированные.
Далее в скрипте следуют выполняемые строки с командами, в данном случае для обновления системы Ubuntu:
sudo apt update
sudo apt upgrade -y
-y в конце второй команды даёт понять интерпретатору/терминалу, что это действие/команду нужно выполнить автоматически, без дополнительного подтверждения пользователем, нажатия клавиши Ввод. y - сокращённо от английского yes, т.е. да.
Вот и всё. Ваш первый скрипт создан. У вас должно получиться как на снимке:
Остаётся сохранить созданный файл/скрипт и дать ему Имя с обязательным расширением в конце - .sh. Расширение .sh присваивается исполняемому файлу.
Я дал ему Имя - обновление.sh, сохранив в Домашней папке пользователя:
Для того чтобы созданный файл/скрипт был исполняемый, ему нужно дать на это разрешение. Сделать это можно двумя способами.
1. Выполнить следующую команду в терминале:
sudo chmod +x обновление.sh
2. Либо открыть файловый менеджер в Домашней папке (где вы сохранили созданный скрипт), правый клик на файле, в контекстном меню - Свойства - Права и активировать пункт - Выполнение: Разрешить выполнение файла как программы:
Чтобы выполнить созданный скрипт, нужно открыть терминал ( о чём я писал в самом начале статьи, что терминал - необходимый атрибут/инструмент для выполнения скрипта), ввести sh, через пробел название скрипта - обновление.sh и нажать клавишу Ввод:
Либо в терминале вводим sh и перетаскиваем из файлового менеджера созданный файл с скриптом (также через пробел):
После того как путь к файлу отобразится после команды sh и пробела, достаточно нажать клавишу Enter (Ввод), чтобы выполнить обновление системы:
Теперь в любой момент вы можете сделать обновление системы созданным собственным скриптом.
Да, кто-то может возразить, что обновление системы не сложно сделать выполнением этих двух команд в терминале, зачем пыжиться и создавать какие-то скрипты? Всё верно. Но это пример создания простейшего скрипта, чтобы показать, что "не боги горшки обжигают" 😃.
Научившись писать и использовать простейшие скрипты, можно создать скрипт по настройке системы, с тем чтобы в случае переустановки системы могли воспользоваться созданным сценарием без необходимости искать каждый раз в сети сайты с подобными настройками.
Многие из вас, скорее всего, пользуются сайтами по настройке системы, типа тех что я публикую после выхода очередного релиза Ubuntu - Ubuntu после установки или подобными сайтами. Откройте один из таких сайтов: http://compizomania.blogspot.com/2016/04/ubuntu-1604.html, затем текстовый редактор для создания скрипта.
Для примера я сделал следующую заготовку.
В текстовом редакторе вводим первую обязательную строку:
#!/bin/bash
Далее закомментированные строки с описанием:
# Настройка Ubuntu после уставновки
# Обновление системы
Ниже следуют команды обновления системы:
sudo apt update
sudo apt upgrade -y
Строка описания: Добавление репозиториев:
# Добавление репозиториев
И добавляете необходимые репозитории для дальнейшей установки программного обеспечения:
sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y
sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y
После того как необходимые репозитории добавлены (повторюсь, у вас могут быть свои репозитории, у меня пример), необходимо обновить систему:
Строка с описанием:
# Обновление системы после подключения репозиториев
И команда на выполнение:
sudo apt update
Теперь, когда репозитории добавлены и система обновлена, наступила очередь в установке программ:
# Установка программ
Для установки программ достаточно один раз ввести команду sudo apt install, а затем через пробел в данную строку добавлять сколько угодно программ, главное чтобы они были правильно составлены. Если какая-то программа состоит из нескольких слов, её команда должна быть монолитной, т.е. все слова в ней должны вводится через чёрточку, например: unity-tweak-tool:
sudo apt install my-weather-indicator telegram skype lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y
Установка дополнительных кодеков
# Мультимедиа и кодеки
sudo apt install ubuntu-restricted-extras -y
Отключение о сбоях в системе
# Отключить отчёты о сбоях в системе
sudo sed -i "s/enabled=1/enabled=0/g" '/etc/default/apport'
Ну вот, пожалуй, и всё. Данный созданный файл сценария должен выглядеть следующим образом:
Необходимо сохранить его (нажать кнопку Сохранить) и дать Имя с расширением .sh. Я назвал его Настройка\ Ubuntu.sh (вы можете назвать по-другому, но обязвтельно с расширением .sh):
Делаем созданный скрипт исполняемым:
sudo chmod +x Настройка\ Ubuntu.sh
Для выполнения созданного скрипта введите в терминале sh и название созданного скрипта через пробел, либо sh, пробел и перетащить в терминал созданный файл, как объяснялось ранее в простейшем скрипте и нажмите клавишу Ввод, для его выполнения.
Примечание. Обратный слэш в команде Настройка\ Ubuntu.sh экранирует пробел в названии файла для терминала между двумя отдельными словами.
После того как скрипт будет выполнен, хранить его на будущее, для возможной переустановки системы и повторной настройки, лучше всего на отдельном разделе ж/диска в папке /home. Если таковой нет, то в облачном сервисе (Облачное хранилище данных) типа: DropBox, Облако Mail.Ru, Mega.co и т.п., чтобы в любой момент воспользоваться скриптом самому, либо помочь знакомым или родственникам в настройке системы.
Удачи.
Спасибо. Очень познавательно.
ОтветитьУдалитьНеплохо для начала, радует что комментировали действия.
ОтветитьУдалитьНо более корректно добавлять репозитарии скриптом, будет так.
#Обновим репозитарии
sudo apt-get -y update
sudo apt-get -y --force upgrade
#Обновим ключи репозитариев
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `apt-get update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`
#Установка adb и всего прочего
sudo apt-get -y --force-yes install android-tools-adb android-tools-fastboot # если $doing содержит 1, то установить adb.
Большое спасибо ! Давно собирался занятся этим , все руки не доходили .
ОтветитьУдалитьДа подсказали бы, если укажите систему.) Но в большинстве дистрибутивов назначение горячих клавиш можно сделать в приложении Клавиатура - Комбинации клавиш. Вот хотя бы здесь посмотрите: http://compizomania.blogspot.com/2016/11/linix.html
ОтветитьУдалитьСпасибо огромное, действительно очень полезная информация.
ОтветитьУдалитьСпаибо, Владимир, за очень полезную статью с подробными комментариями для полного понимания, "век живи, век учись"!
ОтветитьУдалитьВ MX16 sudo add-apt-repository не работает наверное что-то дополнительно надо установить?
ОтветитьУдалить==MX16 sudo add-apt-repository не работает== Конечно не работает, т.к. это Debian-дистрибутив и у него свои репозитории. Убунтовские не подойдут. Их не нужно указывать в скрипте.
УдалитьВладимир почему не запускается исполнение скрипта на уст-ку multisistem (изначально пытался как обычно через терминал, но вроде репоз-й не подкл-ся) На одном из сайтов скачал скрипт- и опять никак. Выставил и права на исполн. и в наутилусе тоже выставил галочки как положено. Но при запуске скрипта требуется права sudo. Пишу sudo - всё тоже самое. Помогите пожалуйста.
ОтветитьУдалитьИзвиняюсь, ubuntu 16.04 у меня.
ОтветитьУдалитьСкиньте в комментарий сам скрипт, чтобы посмотреть что он собой представляет. Иначе трудно ответить.
УдалитьВладимир, спасибо за ответ. На компе, с которого пишу всё классно установилось. На другом компе(моноблоке) этот же скрипт никак!!! Кстати, на Вашем сайте уст-ка multisistem через терминал работает или нет? Спасибо.
Удалитькак корректно сделать выполнение скрипта по событию выключения или перезагрузки. К примеру нужно удалить файл и вместо него записать другой, но ничего не выходит, иногда правда удаление происходит.
ОтветитьУдалитьsaansan, несколько раз прочитал Вас коммент, но к сожалению так ничего не понял. То Вы пишите о выключении и перезагрузке, а в пример приводите удаление одного файла и запись другого. Как-то всё сумбурно.
УдалитьЕсть очередь скриптов выполняемая во время старта и выключения, кажись в rc.d подобных ссылки лежат. Выполнение в очереди как я понял происходит согласно значимости в системе, так что бы не вырубить раньше времени процессы без сохранения данных. Так вот почему то простенький скрипт отказывается выполняться, хоть и рут права ему даются. Тот же самый скрипт нормально выполняется при включении в автозагрузку с пользовательскими правами. Мне хотелось сделать выполнение на перезагрузку и отключение.
УдалитьОгромное спасибо,полезная информация.
ОтветитьУдалитьВладимир, есть проблема. Появилась недели две назад.
ОтветитьУдалитьUbuntu 12/04 при обновлении в менеджере выдает такое сообщение:
W:Failed to fetch http://ppa.launchpad.net/gerardpuig/ppa/ubuntu/dists/precise/main/source/Sources 404 Not Found
, W:Failed to fetch http://ppa.launchpad.net/gerardpuig/ppa/ubuntu/dists/precise/main/binary-amd64/Packages 404 Not Found
, W:Failed to fetch http://ppa.launchpad.net/gerardpuig/ppa/ubuntu/dists/precise/main/binary-i386/Packages 404 Not Found
, E:Some index files failed to download. They have been ignored, or old ones used instead.
Потом пишет, что нет интернет соединения. Хотя оно работает
А в панели висит красный треугольник, говорит, что информация об обновлениях устарела.
Бьюсь уже неделю, но установить обновления не могу.
Как выйти в этой ситуации.
Заранее спасибо.
Судя по извещению, репозиторий глючит для Ubuntu Cleaner, т.к. он не для Ubuntu 12.04.
УдалитьОткройте Источники приложений, удалите репозиторий ppa:gerardpuig/ppa
И сделайте обновление системы.
Или выполните следующие команды в терминале:
Удалитьsudo add-apt-repository -r ppa:gerardpuig/ppa
sudo apt-get update
Владимир, огромное спасибо, уже сделал - да, помогло.
УдалитьКакую команду прописать в скрипте, чтобы его выполнение писалось в текстовый файл, а не только на экран терминала и закрывался. Для того чтобы можно было потом посмотреть ошибки выполнения. Типа лог скрипта.
ОтветитьУдалитьСпасибо.
Поддерживаю, было бы полезно!
ОтветитьУдалитьhttp://pingvinus.ru/note/terminal-script-command
УдалитьСпасибо.
УдалитьУ меня Убунта 12.04. Вот мой скрипт#!/bin/sh
ОтветитьУдалитьsudo apt-get update -y
sudo apt-get upgrade -y
Делаю,все как Вы написали. Проблема: все равно запрашивается пароль. Как решить данную проблему?
== все равно запрашивается пароль. Как решить данную проблему?== Конечно после команды c sudo будет первый раз запрашиваться пароль. Если не хотите постоянно вводить пароль, как администратор системы, откажитесь от него: http://compizomania.blogspot.com/2014/02/sudo-ubuntu.html
УдалитьСпасибо
ОтветитьУдалитьsh зачем обязательно?У меня скрипты и без этого расширения работают.
ОтветитьУдалить==sh зачем обязательно?У меня скрипты и без этого расширения работают.== Скрипт без расширения будет работать, если Вы перетаскиваете его в терминал или указываете полный путь к нему. Расширение .sh даёт возможность по клику на файле с скриптом выполнять его без необходимости открывать терминал.
УдалитьВот как-то так можно ответить на Ваш вопрос.
Без терминала не виден процесс,вдруг ошибка
УдалитьНе обязательно перед скриптом указывать sh.
УдалитьДостаточно так:
$ chmod -x myscript.sh
$ ./myscript.sh
Здравствуйеу!! Всех с праздниками! Подскажите как прикрутить в скрипт звуковой фаил. Суть такова , сделан скрипт простого термостата по температуре включает и выключает нагреватель. Хотелось бы чтоб во время включения проигровался звук. Скрипт делал в прошлом году, где про это читал не могу найти , может удалили. Или носом ткните где почитать.
ОтветитьУдалитьВячеслав, не это Вы ищете случайно? http://compizomania.blogspot.com/2014/02/ubuntu-120413101404.html
УдалитьСпасибо Владимир, пинок в нужную сторону. Сделал так пока.
Удалить#!/bin/bash
mplayer /home/slava/zvuki/01075.mp3
Лучше взгляните в сторону python. Он не намного сложнее bash, но овладев пайтоном вы получаете действительно полноценный инструмент.
УдалитьРазрешите позанудствовать:
ОтветитьУдалить1. Если уж запускаем через "sh обновление.sh", тогда уж нужно и в заголовке писать /bin/sh, а не /bin/bash. А то получается скрипт писали для одного интерпретатора, а зупускаем в другом. В данном конкретном случае, все равно, но для более сложных скриптов могут быть нюансы.
2. Раз уж сделали файл исполняемым, так запускаем ./обновление.sh, а не "sh обновление.sh". В этом случае как раз будет корректно выбран интерпретатор из директивы #!
Два чая этому господину!
УдалитьЕсли напихать в систему слишком много всего, то иногда без прямого вызова bash, типа sudo bash ***********.sh, сложный скрипт не хочет запускатся.
ОтветитьУдалитьВ таких случаях я сразу вспоминаю забавную сценку из сериала Мистер Робот. Где у какой-то сексуальной дурочки, причём сидящей на унитазе, никак не получается взломать ФБР.
Подскажите плиз, куда посмотреть. Нужно склеить скрипт для запуска обновлений на компьютерах в локальной сети. В сети машины на Ubuntu-Mate 16.04, a мой с Ubuntu 16.04. Буду очень признателен
ОтветитьУдалитьможно сделать следующим образом:
Удалить#!/bin/sh
ssh 192.168.1.1 'apt-get update && apt-get upgrade'
Или даже так:
Удалить#!/bin/sh
HOSTS="192.168.1.1 192.168.1.2 192.168.1.3"
LOG="/var/log/update.log"
for i in $HOSTS
do
ssh $i 'apt-get update && apt-get upgrade'
if [ ! $? = 0 ]; then
echo "Что-то пошло не так c $i..." >> $LOG
else
echo "Команда обновления успешно отправлена на $i!"
fi
done
Можно через пробел записать IP-адреса хостов в переменную HOSTS, цикл for будет выполняться до тех пор, пока не обработает все хосты. Условие if [ ! $? = 0 ] проверяет успешно ли выполнена команда по коду возврата, если код возврата не равен нулю,то будет соответствующая запись в логе и наоборот.
В дополнение ко всему вышесказанному можно добавить следующее. При написании скриптов бывает полезно запускать скрипт в режиме отладки. Я режим отладки включаю так:
ОтветитьУдалить#!/bin/sh -x
владмир нужна помощь в создание скрипта буду очень рад если ответите
ОтветитьУдалитьработа очень интерессная