Intereting Posts

shell сохраняет ip-адрес, который вы ping?

Мне когда-то показывали ярлык, который я не могу вспомнить / найти. После того, как pinging ip, а затем попытался ssh в него – ip был автоматически сохранен в переменной.

Что-то вроде:

ping 10.1.23.4 ... ssh root@$! 

и ip был реплицирован во второй строке, заменяющей $! без дальнейших церемоний.

Так это звонит, что такое синтаксис? Или это была какая-то особая конфигурация? Я считаю, что это работает, если это связано. ТИА

Это bashism – bash является языком оболочки по умолчанию в CentOS. (Csh имеет что-то подобное.) Ознакомьтесь с частью истории Expansion в руководстве; возможно, вас интересует !* , который является «всем аргументом предыдущей команды» или !^ , который даст вам первый, или !$ , который даст вам последнее.

Обратите внимание, что это не переменные. Они расширены и заменены замещающей стоимостью в истории.

Другая альтернатива, если вы используете bash в режиме редактирования emacs (по умолчанию), вы можете сделать следующее:

$ ping xxxx Ctrl- w Ctrl- y

Ctrl- w удалит последнее слово (IP-адрес), поместив его в кольцо уничтожения , Ctrl- y вставляет содержимое кольца уничтожения.

Затем вы можете запустить любое количество команд, а затем в точке, в которой вам нужен IP, просто повторно используйте Ctrl- y

$ ssh root@ Ctrly

Обратите внимание, что выдача любых связанных с убийством функций в новой командной строке заменит содержимое кольца kill:

$ ping xxxx Ctrl- w Ctrl- y

$ touch /tmp/example.file Ctrl- w Ctrl- y

$ ssh root@ Ctrly

приведет к:

$ ssh root@/tmp/example.file