Заменить iwgetid на iw

Вы не можете ничего распечатать в неинтерактивном сеансе. Это нарушает работу любых клиентов, использующих строгий протокол, такой как SFTP или SCP.


Используйте / etc / motd (который используется только для интерактивных сеансов).

Или используйте директиву sshd_config Баннер .

Или проверьте интерактивный сеанс перед печатью чего-либо (например, проверив наличие переменных TERM или приглашения ).


Историю см. В моем ответе на вопрос о сбое сервера SSH MOTD для каждого пользователя .

1
09.06.2017, 23:00
3 ответа

iwgetid -r— мощная команда, поскольку вам не нужно задавать имя интерфейса, его можно заменить следующей строкой :

iw dev <interface> link | awk '/SSID/{print $2}'
2
27.01.2020, 23:45

Если вам нужна более простая и быстрая команда, вы можете использовать:

iw <interface> link|grep SSID | awk '{print '$2'}'|sed -u -e 's/SSID: //'
1
27.01.2020, 23:45

-Вы, должно быть, имеете в виду эту разницу: если мы используем only, у нас будет только первое имя сети, если оно составлено, а не полное имя, как в этих примерах.

 iw <interface> link | grep SSID | awk '{print $2}'

-Здесь у вас есть только 1-й. название.

 iw <interface> link | grep SSID | awk '{print '$2'}'

-Таким образом, вы получаете полное имя, даже если оно составлено.

Остальная часть кода просто удаляет указание «SSID :» из ответа, упрощая его.

 iw <interface> link | grep SSID | awk '{print '$2'}' | sed -u -e 's/SSID: //'
0
27.01.2020, 23:45

Теги

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