В вашем распоряжении
ssh user_name@192.168.1.xx "bash -s" -- < scripts/machine-info.sh
перенаправление с scripts/machine-info.sh
происходит локально. Это перенаправление в команду ssh
и данные попали бы на стандартный ввод удаленного bash -s
процесса (, если бы файл существовал локально, но его нет, поэтому вы получаете ошибку ).
В других показанных вами примерах доступ к сценарию осуществляется на удаленной машине.
Например, в
ssh user_name@192.168.1.xx 'bash -s -- < scripts/machine-info.sh'
Перенаправление является частью команды, выполняемой на удаленной машине, из-за одинарных кавычек вокруг командной строки.
Я считаю, что правильный «Ответ» на этот вопрос задокументирован здесь, на GitHub
К цитате добавить
alias cal="if [ -t 1 ] ; then ncal -b ; else /usr/bin/cal ; fi"
в rc-файл вашей оболочки.
Это крайне раздражающее изменение. Изменение поведения часто используемой команды cli в течение как минимум 17 лет, чтобы сделать ее «правильной», — это какое-то безумие. Теперь я понимаю, почему так много людей так ненавидят Windows, но все еще не хотят переходить на Linux. Я почти уверен, что почти все сопровождающие пакетов, которые используют cal
(, на самом деле, я думаю, что большинство из них в любом случае используют дату ), обучены использовать cal -h
, чтобы отключить подсветку. Теперь изменение даже нарушает совместимость с cal -h
.
Изменение задокументировано здесь
Более простой способ решить проблему «отсутствия выделения» — использовать псевдоним cal
для ncal -b
, но он не на 100% соответствует ожиданиям сопровождающего пакета ncal
.