Я создал похожую среду, но не сталкивался с такими проблемами, как вы упомянули, группа была успешно изменена.
Вы пробовали выполнять по одному? это работает? Если это работает, можете ли вы попробовать добавить 5-секундный сон в -между командами ssh и попробовать один раз?
Расширение совершенно не имеет значения. За очень немногими исключениями (, такими как gzip
), расширения являются необязательными и произвольными в *nix-системах. Сценарий оболочки не нуждается в расширении, и любое расширение, которое он может иметь, не имеет абсолютно никакого значения. Вы можете вызвать bash-скрипт foo.asldifjh
, и он будет работать точно так же, как foo.sh
.
Итак, чтобы ответить на ваш вопрос, для всех оболочек, которые вы упомянули, расширение не имеет значения, и все они могут запускать скрипт с shellName /path/to/script
. Все они также могут использовать линию шебанга. Вот один для ksh
например:
#! /bin/ksh
Если в файле сценария есть строка shebang и он установлен как исполняемый (chmod a+x /path/to/script
), вы можете просто запустить /path/to/script
напрямую, и сценарий будет интерпретирован любой оболочкой, которая у вас есть в строке shebang. Опять же, расширение совершенно не имеет значения.