Я хотел бы знать, как определить, было ли соединение успешным или оно не установилось?
blockquote>Putty не предоставляет механизм внешним программам, таким как Powershell, который указывает, является ли Сеанс SSH был или не был успешно установлен.
Есть ли какой-нибудь код возврата для команды Putty, который скрипты могут перехватить, по которому я смогу определить?
blockquote>Нет.
Я собираюсь пропустить назначение существующих кодов и то, как вы извлекаете их в Powershell. Вы можете найти эту тошноту в сети.
Мартин Прикрыл предлагает использовать библиотеку .NET SSH.
Если вы настроены на создание сценариев через SSH-клиент, посмотрите на plink или ssh-клиент Windows 10 . Например, если вы используете встроенный ssh-клиент для Windows 10 с чем-то вроде ...
ssh foo@bar $?
Соединение с bar как пользователь foo завершится неудачно, и вы увидите, что
$?
вернет false в качестве результата.
Я неравнодушен к zsh (он похож на смешение ksh и удара). У руководства есть хороший обзор его функций. Эта страница имеет хорошую диаграмму, показывающую доступность различных функций в различных оболочках.
удар: По моему опыту, большинство людей использует удар, частично потому что это - стандартная оболочка в большинстве систем Linux.
ksh: Много систем Соляриса используют ksh вместо этого, но это, кажется, освобождает популярность для избиения.
csh: Csh раньше был более популярным, но обычно заменялся tcsh. tcsh, не плохо для тех, кто очень доволен подобным синтаксису C.
zsh: Я не использовал zsh, но это, кажется, очень многофункционально.
Лично, я предпочитаю удар, потому что он установлен почти на каждой совместимой с Unix ОС, это очень универсально, и является хорошим компромиссом между простым инструментом командной строки и языком сценариев.
Bash является лучшим для знания для самой широкой совместимости, можно сидеть в в основном любом Unix, и это будет там.
Zsh является одной из самых современных оболочек, вероятно. Существуют все виды сумасшедшего забавного материала, который можно сделать с ним
Я использую ksh93 предпочтением. Это означает, что основы ksh доступны в в значительной степени любой системе, на которой я нахожу меня, таким образом, мой интерактивный опыт и 98% моего сложного профиля остается таким же.
bash
является немного медленным, но как много программ FSF, это пытается включить все известные функции. Я использую ksh93
, который в основном сходился с bash
. Основное преимущество ksh
это, это имеет хороший интерфейс для расширения оболочки с кодом C. Также немного легче настроить, например, заставить клавишу Tab сделать то, что Вы хотите в контексте. Недостаток - то, что завершение команды не встроено; необходимо программировать его.
Избежать csh
и его производные :-)
У меня был тот, подстроенный для обеспечения истории оболочки на сессию.
Уникальной вещью здесь было каждое окно, имел его собственную историю оболочки. Довольно удобный.
По моему опыту, существует очень немного положительных героев в стандартных оболочках Unix (где это означает мне, csh
, sh
, ksh
) это также не присутствует, по крайней мере, в эквивалентной форме в bash
. Следовательно, пока Вы удобны это bash
будет на всех Ваших машинах, можно также использовать его для получения максимальной функциональности.
OTOH, если Вы хотите иметь дело с мобильностью, Вы будете, вероятно, использовать ksh
, который рубит достаточно близкий к стандарту POSIX - с некоторыми расширениями (удар также справедливо близко к стандарту POSIX, но со скорее большим количеством расширений).
Мне действительно нравится POSIX $(cmd)
нотация вместо классических обратных галочек
`cmd`
(Который не был забавой в Скидке с цены!). Одна основная причина симпатии его состоит в том, что очень, намного легче вложить вызовы:
gcclib=$(dirname $(dirname $(which gcc)))/lib
Разбирание в этом на одной строке с обратными галочками достаточно глупо, что Вы не попытались бы превратить его в остроту. Это находится в ksh
и bash
; это не находится в классической Оболочке Bourne (/bin/sh
, но знайте это /bin/sh
на некоторых машинах не классическая Оболочка Bourne, но bash
скрытый), ни в оболочке C.
Если Вы используете удар, и Вы довольны им, никакая потребность измениться сразу же. Это - хорошая оболочка. Знание истории его говорит Вам что-то о нем также: Граница Снова Оболочка. Это была хорошая попытка сделать лучшую оболочку, чем Оболочка C и ее производные (как tcsh), позволяя Вам использовать/bin/sh синтаксис для сценариев (или для интерактивного использования), но добавление некоторых более хороших функций csh (как история и так далее).
Оболочка Korn и Bash имеют много общего в понятии так или иначе. Как/bin/sh, оболочка Korn прибыла из AT&T первоначально и не была открыта полученный до относительно недавно. Это имеет хороший механизм истории и делает захват файла на файлах состояния истории так, чтобы, если они смонтированы на сетевых файловых серверах, несколько копий оболочки правильно записали в файл истории, не ударяя друг друга. Это также поддерживает/bin/sh синтаксис и включает некоторые хорошие вещи о/bin/csh. Существует много к ksh, и это обычно - довольно хорошая оболочка, если можно найти его. Я раньше использовал его на Солярисе, особенно назад, когда я работал в Sun. Я не хотел устанавливать что-либо, что не шло с ОС, так как я устанавливал новую ОС несколько раз в неделю, таким образом, это было хорошим выбором.
Теперь я использую или Bash или zsh. Я предпочитаю zsh из-за его богатого набора функций завершения команды и записи функций оболочки в целом (для моих интерактивных оболочек - при программировании сценариев, я придерживаюсь довольно стандартного материала Оболочки Bourne).
Как другие сказали, лучше избегать любой версии оболочки C, за исключением тех оболочек, которые дают Вам некоторые функции/bin/csh, но не получены на основании кода/bin/csh.