Сценарий TCL/Expect с логикой if/else на основе IP-адреса хоста

Поэтому я использую / наслаждаюсь /usr/bin/ Ожидаем сценариев, потому что он может быстро войти на сервер, так как он автоматически заполняет мой идентификатор пользователя и пароль. После некоторого беглого прочтения я понял, что это в основном надмножество TCL, о котором я ничего не знаю.

Я постоянно подключаюсь к своему серверу MacBook Pro и хочу сделать еще один шаг к сценарию входа в систему и заставить его войти в NAS во внутренней сети одним способом, если я нахожусь в домашней сети (с RFC-1918). IP-адрес 192.168.0.0/24) и войти в него по-другому, если я не в этой сети. В основном условие if-else.

Команда для возврата текущего адреса хоста IPv4 (по крайней мере, в macOS):

ifconfig en0 | grep 'inet' | awk '$1 == "inet" { print $2 }'

(Заменить en0 с интерфейсом, используемым по мере необходимости; это Wi-Fi на моем Mac.)

Это возвращает адрес IPv4. Я думал, что эта команда должна вызываться некоторой функцией (которая, по-видимому, TCL вызывает процедуры), и ее вывод возвращается к условию if-else, которое затем выполняет соответствующий набор команд и выходит из сценария.

Я дошел до того, что делал простые if-else, но я не уверен, как стандартный вывод команд можно включить в скрипт. Есть идеи?

1 ответ

Чтобы получить вывод команды в Tcl, используйте exec:

Например, set myvar [exec "date -u"]

Другие вопросы по тегам