Вы должны указать закрытый ключ в переключателе -i
вместо открытого:
chronos@localhost ~/.ssh $ ssh -vvvi ~/.ssh/id_rsa freebsd@x
less
выводит текст на стандартный вывод. stdout отправляет
less text | cut -d: -f1
) less text> tmp
) Там это функция C под названием "isa tty ", которая проверяет, идет ли вывод на tty (меньше 4.81, main.c, строка 112). Если это так, он использует средство просмотра буфера, в противном случае он ведет себя как cat
.
В bash вы можете использовать test (см. man test
)
Пример :
[[ -t 1 ]] && \
echo 'STDOUT is attached to TTY'
[[ -p /dev/stdout ]] && \
echo 'STDOUT is attached to a pipe'
[[ ! -t 1 && ! -p /dev/stdout ]] && \
echo 'STDOUT is attached to a redirection'
less
проверяет, является ли его stdout
терминалом, и ведет себя как cat
, когда это не так (копирует stdin в stdout до EOF).
Эта функция позволяет вам писать сценарии или программы, которые всегда отправляют свой вывод (например, - help
output) через less
, при этом позволяя легко перенаправлять в файл. Было бы отстойно, если бы some_command --fullhelp> help.txt
все еще ждал, пока пробел на стандартном вводе не пролистает текст, или что-то в этом роде. Некоторые команды (например, man
) проверяют свой собственный вывод, чтобы решить, посылать свой вывод через пейджер или нет. Если вы запустите man ls> ls.txt
, он никогда не вызовет ваш $ PAGER
. Кошачье поведение
less
удобно, если вы забыли отредактировать его из однострочника при добавлении дополнительных этапов в конвейер.
less
необходимо выяснить размеры терминала (размер экрана, чтобы знать, сколько строк отображать одновременно). ioctl (2)
, который он использует в stdout
, вернет ENOTTY на нетерминальном устройстве, поэтому в любом случае он не может избежать обработки нетерминального случая. less
фактически использует isatty (3)
перед проверкой размеров терминала, но isatty
работает, пробуя ioctl только для tty и проверяя отсутствие ошибок.
Даже простой пейджер, такой как more (1)
(по крайней мере, версия для util-linux), имеет эту функцию, потому что это, вероятно, простейшее разумное поведение для такого случая.
Обратите внимание, что когда вы передаете что-то в less
(например, grep foo bar.txt | less
), оно должно открывать / dev / tty
для ввода с клавиатуры. (Вы можете увидеть это с помощью echo foo | strace less
).