Михаил Касаджиков -> Andrey Nikitin @ Fri, 28 Oct 2016 13:17:38 +0300:
>>> Если шелл в скрипте работает не так, как >>> интерактивный, то смысл его как шелла практически пропадает. Лучше >>> писать скрипты на совсем другом языке, чем на _чуть-чуть_ не таком. >> В "яблочко", хотя и грустно это ( >> > Ну, когда работаешь с зоопарком платформ, всё равно будешь интерактивно > работать в чём-то одном, а писать под весь зоопарк и не максимально используя > функциональность интерпретатора, а минимально. Тут или шашечки, или ехать. > Тут если используешь «#!/bin/sh», то, будь добр, учитывай что на сервере > может > оказаться нечто совсем обрезанное. Или же указывай явно «#!/bin/ksh», > «#!/bin/bash», «#!/bin/zsh» и т.д. Моя вот практика показывает, что если хочется работать с любым юниксом и нормально управлять процессами, то оптимальный выбор - perl. В линуксах и FreeBSD он в норме есть, и на любом юниксе легкодоступен. При этом базовые функции работы с процессами везде работают одинаково, а если что-то может не поддерживаться, то об этом в документации написано, и можно этим не пользоваться. Правда, библиотечку приходится написать и таскать с собой, потому что на базовом уровне у него один в один сишный интерфейс, и это многословно, а модулей за пределами базовой библиотеки с легкостью может не быть. Но она небольшая. Я даже делал подобные скрипты, которые передаются в stdin команде ssh host perl. Для операций на хосте с read-only файловой системой.

