Я уже давно пользуюсь tcsh
. Но всякий раз, когда я что-то ищу, я часто нахожу, что указанные методы bash
специфичны. Даже синтаксис для сценариев оболочки отличается для двух.
Судя по тому, что я испытал в интернете, я bash
нашел более распространенную оболочку. Даже количество вопросов на этом сайте помечено bash
намного больше (в пять раз больше), чем количество вопросов, помеченных tcsh
.
Итак, мне интересно, должен ли я перейти на Bash. Что вы думаете?
Почему я должен придерживаться tcsh
ИЛИ, почему я должен перейти к bash
?
zsh
(на какую OS X должен был переключиться)dash
тех, кто должен работать на что угодно.zsh
. В то же время это не забавно, потому что на самом деле не отвечает на вопрос ops. вот почему я сделал мой ответ Zsh комментарием, а не ответом. Хотя, если у вас нет проблем с обучением интерпретации сценариев tcsh, используйте то, что вы знаете. Если у вас есть проблемы с использованием,tcsh
напишите о вашей проблеме здесь. Не переключайтесь только потому что . Есть больше постов bash, потому что они установлены по умолчанию в большем количестве мест, что не делает его лучше.Ответы:
После изучения bash я обнаружил, что tcsh - это шаг назад. Например, то, что я мог легко сделать в bash, мне трудно сделать в tcsh. Мой вопрос по tcsh . Интернет-поддержка и документация также намного лучше для bash и очень ограничены для tcsh. Количество книг О'Рейли по bash велико, но я не нашел ничего подобного для tcsh.
источник
На самом деле, вы должны перейти к
zsh
! Это существенно обратная совместимость и у него есть все полезностиbash
с большим огромным Помогающим благоговением . Есть даже книга (хотя я не удосужился прочитать ее).Я признаю одну причину, чтобы не использовать
zsh
более,bash
но если вы постоянно работаете над несколькими новыми установками, это на самом деле не применимо. Особенно, если вы знаете о самых существенных различиях . Это, однако, действительно сродни различиям междуvim
иvi
; ты не хочешь быть наивным, но практически это не страшно. Даже хардкорныеvim
пользователи могут ориентироватьсяemacs
и наоборот.источник
Вы должны переключиться на POSIX-совместимую оболочку http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html , например, bash, ksh, dash, но не zsh и, конечно, не tcsh. Прошло много времени с тех пор, как csh был объявлен плохим выбором для сценариев: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh не сильно отличается в этой области.
При написании сценариев обязательно используйте конструкции только для POSIX (т.е. избегайте ошибок и тому подобного), если вы не хотите снова блокироваться в чем-то непереносимом.
источник
Я думаю, что навязчивая совместимость не имеет смысла. Если вы пытаетесь сделать все совместимым, ставя
#!/bin/sh
вверху и используя расширения .sh , но никогда не тестируя ничего, кроме bash , вы не гарантируете совместимый скрипт! Лучше всего использовать#!/bin/bash
и .bash, чтобы пользователи действительно знали реальное требование.Если вы знаете zsh , tcsh или что-то еще лучше, чем bash , и у вас есть для этого хорошее справочное руководство, не откладывайте . Точно так же, как люди ожидают установить Perl или Python, чтобы иметь возможность запускать некоторые скрипты, они также могут справиться с установкой вашей малоизвестной оболочки! : D
источник
/bin/sh
обязательно указывать на korn-совместимую оболочку, в то время как tcsh является оболочкой, производной от csh. Вероятно, это/bin/sh
уже указывает на bash или другую совместимую оболочку, и почти наверняка на нее не повлияет изменение пользовательской оболочки. csh и sh полностью несовместимы.dash
(ash
совместимая оболочка Debian и Bourne).#!/bin/sh
одного-ne
POSIX. Однако забота о совместимости с POSIX не должна относиться к типу соображений, помеченных как «одержимые». Вызовsh
dash по умолчанию с помощью debian / ubuntu, и уже некоторое время. Я знаю, что это не будет квалифицироваться как «гарантированное», но редко я буду считать что-либо переносимое «гарантированным». Я был бы еще более сдержан с помощью «сценария оболочки».Какая оболочка? Перейти на тот, с лучшим соотношением «простота использования» против «неприятностей» ...
Если вы не можете найти достаточно общих примеров и объяснений для вашей оболочки "Maserati", то ее дополнительная производительность может быть большей проблемой, чем бонусом ...
Я нашел эту статью / сайт интересным; это может быть стоит прочитать:
различия оболочек UNIX и как изменить вашу оболочку
источник
zsh, вероятно, имеет несколько больше сходства с tcsh, чем bash.
Смотрите: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
Люди часто утверждают, что zsh может делать то, что не может bash, но я не обнаружил, что это так. То , что я уже видел, что для Zsh это проще, встроенное или включен по умолчанию, в то время как в Баше это аддон скрипт, должно быть включено, или сложнее.
(отказ от ответственности: я пользователь bash, который иногда рассматривал возможность перехода на zsh)
источник
По некоторым причинам я использовал tcsh, как и 20 лет назад. Как я знаю, bash происходит из sh, но, конечно, с большим количеством csh, но tcsh происходит из csh. Мне очень нравится завершение команды в первые дни, но сейчас она доступна в большинстве оболочек. Для сценариев, мы будем придерживаться / bin / sh?
источник