ssh: как отключить эхо при запуске команды на удаленном компьютере

Вы можете передать по конвейеру:

expand -t "$((${COLUMNS:-$(tput cols)} / 2))"

Или для угловых скобок:

awk -v cols="${COLUMNS:-$(tput cols)}" '
  BEGIN {width = cols/2-1; space = sprintf("%*s", width, "")}
  /^\t/ {print space ">", substr($0, 2); next}
  {printf "%-*s<\n", width, $0}'

Если ваш tput не выводит количество столбцов, вы можете попробовать проанализировать вывод stty size или stty -a . Или используйте zsh -c 'echo $ COLUMNS' (также работает с mksh ). Не существует стандартного / переносимого способа получить эту информацию.

Если входные файлы содержат символы с многобайтовой или двойной шириной, YMMV. В зависимости от реализации expand / awk выравнивание может быть отключено.

Это также предполагает, что во входных файлах нет строки, начинающейся с символа табуляции. Если это не может быть гарантировано, реализация GNU comm имеет - разделитель вывода , который вы можете использовать для указания уникальной строки. Или вы можете реализовать функциональность comm в awk , что не должно быть слишком сложным.

1
18.09.2017, 20:38
1 ответ

Принудительно передать терминал, чтобы kinitмог выполнять терминал -без -эха, который он делает по умолчанию:

ssh -t myserver kinit
5
27.01.2020, 23:18

Теги

Похожие вопросы