Вот код:SSH: подключение .. казнить .. printenv SSH_CONNECTION .. показать только IP
command="ssh -p 2222 -t [email protected]$ip";
command2='"printenv SSH_CONNECTION;bash"'
xfce4-terminal -x sh -c "$command $command2; bash"
выход:
00.00.00.00 53011 10.245.0.225 2222
первый пункт был мой IP. я переместил все числа с 0.
второй предмет .. возможно, ПИД или что-то в этом роде.
Третий элемент. Вероятно, облачные узлы называют «частным ip».
четвертый пункт .. порт ssh.
Я хочу только распечатать свой ip.
и не все другие вещи.
другими словами просто
00.00.00.00
самый чистый .. самый легкий .. наименьший метод потребления ресурсов ..
Просто чтобы убедиться, что все дополнительные вызовы 'bash' необходимы: вы хотите, чтобы открыть новый терминал, который подключается к удаленному хосту , отображает там IP-адрес, а затем оставляет вас в удаленной оболочке, и когда вы выходите из * этой * оболочки, терминал остается открытым в локальной оболочке? – chepner
См. Также [предыдущий вопрос 1] (https://stackoverflow.com/questions/41854287/ssh-echo-ssh-client-returns-empty-when-executed-on-initial-connect) и [предыдущий вопрос 2] (https://stackoverflow.com/questions/41858678/ssh-connect-execute-echo-ssh-connection-awk-print-1). –
Значения, которые вы видите в 'SSH_CONNECTION', находятся в формате' sourceIP sourcePort destinationIP destinationPort'. Все, что вам нужно сделать, это заменить 'printenv SSH_CONNECTION' на' echo \ $ {SSH_CONNECTION %% *} '. – alvits