В старые времена, когда AT & T изобрел UNIX, существовал Bourne Shell, написанный Стивом Борном. Это было довольно просто, и не хватало многих инструментов, которые мы считаем само собой разумеющимся в наши дни.
AT & T на самом деле не был в бизнесе UNIX, поэтому в настоящее время Berkelely в некотором роде принял базовую ОС, и они внесли некоторые изменения в BSD UNIX. Среди многих изменений была новая оболочка под названием csh, в которой было много улучшений по сравнению с sh, в том числе контроль работы, улучшенное интерактивное использование и так далее. К сожалению, они решили, что синтаксис программирования sh не работает, и создали свои собственные (несколько плохие), скопированные из стилей программирования C. (Классическая напыщенная речь http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ) Так что теперь было два синтаксиса.
Позже они внесли улучшения в CSH, добавив завершение табуляции и некоторые другие вещи. Это стало tcsh, и если вы используете CSH, это, вероятно, тот, который вы используете.
AT & T решили, что это не совсем не связано с бизнесом UNIX, и они тоже оттачивали его. Дэвид Корн (хороший парень) создал оболочку Корн. Основанная на идее расширения синтаксиса оболочки Bourne, она добавила много вещей как для программистов, так и для интерактивного использования. На самом деле существует несколько версий, и вы можете редко видеть такие вещи, как ksh88 и ksh93, обозначающие варианты.
Затем пришли ФСФ и ОС GNU. Они хотели создать свою собственную UNIX-совместимую ОС под названием Hurd и хотели лучшую оболочку для нее. Они назвали Bash для Bourne Again Sheell. Правила POSIX пришли как раз в это время, и они хотели бы сделать в POSIX оболочку. Они оглянулись, взяв синтаксис оболочки Bourne и улучшения оболочки Korn, а также украли и расширили интерактивные функции из tcsh. Он стал де-факто оболочкой для Linux, поэтому он очень распространен.
Также есть zsh, написанный как «окончательная» оболочка. Это также очень распространено в мире Linux. Это расширило bash (и немного опылило кросс, некоторые новые вещи вернулись к bash).
Если бы я выбрал раковину, я бы выбрал bash или zsh. Bash, возможно, в нескольких местах, чем Zsh. zsh более мощный, но bash для меня хорош. Real / bin / sh Bourne shell существует только по историческим причинам. В bash есть все, что может предложить ksh, и даже больше. Синтаксис чище, чем csh или tcsh, и обладает лучшими возможностями, чем любой из них.
Конвертировать скрипт зависит от того, к чему. Стиль оболочки Bourne (sh, ksh, bash, zsh) в или из стиля csh (csh, tcsh) будет сложным. Переход от старого к новому (/ bin / sh => bash, / bin / ksh => zsh) будет проще, чем другим способом.