Сценарии Shell не являются сценариями оболочки. Различные системы идут с различными оболочками, и различия в синтаксисе и семантический являются существенными.
Другие упомянули книги Bash для оболочки Korn, которую я рекомендую Приобретению знаний O'Reilly Shell Korn. Если необходимо будет записать портативные сценарии оболочки существует также от O'Reilly: Классик Сценарии Shell.
По-моему: Запись портативных сценариев оболочки является чистым кошмаром даже для людей, которые справедливо привыкли к определенной оболочке. Если Вы происходите из среды окон, Вы знакомы с основным материалом (запустите/остановите сервисы, компилируйте/устанавливайте материалы), и Вашей целью является автоматизация, которую я лично продолжил бы работать с Perl.
В то время как Perl имеет свои дефекты, это когда дело доходит до glueing различных частей вместе, где это сияет. И это - то, что составляет большую часть части автоматизации, по моему опыту. Кроме того, на системном Perl Unix повсеместно.
Те записи спама BAD_ADDRESS обычно добираются там, когда что-то уже находится на адресе, и он пытается раздать арендный договор, быть этим от статически настроенной системы или старого арендного договора, о котором он не знает.
Моя рекомендация, так как Вы только получили небольшое количество систем в сети (и принятие у Вас есть/24 или больший набор для этой подсети), состояла бы в том, чтобы поместить диапазон исключения в настройки DHCP, который покрывает все настройки BAD_ADDRESS и текущий адрес. Так, например, если Вы имеете арендные договоры и BAD_ADDRESSES, рассеянный до.150, затем помещаете исключение для 1-150, вынуждая сервер DHCP раздать более высокий адрес, который должен быть неиспользованным и чистым.
После того как это было сделано, переждите его в течение половины нормального времени владения (8 дней по умолчанию, поэтому ожидайте 4 дня), и проверьте, что все системы находятся теперь на высоких адресах. Затем необходимо быть в порядке, чтобы убрать записи BAD_ADDRESS, удалить исключение 1-150 и возвратиться к нормальному.