具有基于主机 IP 地址的 if/else 逻辑的 TCL/Expect 脚本

具有基于主机 IP 地址的 if/else 逻辑的 TCL/Expect 脚本

因此,我一直在使用 /usr/bin/expect 编写脚本,并且非常喜欢它,因为它可以自动完成我的用户名和密码,从而让我快速登录到服务器。通过粗略阅读,我了解到它基本上是 TCL 的超集,我承认我对它一无所知。

我经常使用 MacBook Pro 通过 ssh 访问我的服务器,我想进一步改进我的登录脚本,如果我在家庭网络上(RFC-1918 IP 空间为 192.168.0.0/24),它就会以一种方式登录到我内部网络上的 NAS,如果我不在该网络上,它就会以另一种方式从外部登录。基本上是一个 if-else 条件。

返回当前 IPv4 主机地址的命令(至少在 macOS 上)是:

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

en0根据需要替换正在使用的接口;这是我的 Mac 上的 Wi-Fi。)

这将返回 IPv4 地址。我认为这个命令应该由某个函数调用(TCL 显然将其称为过程),并将其输出返回到 if-else 条件,然后执行相应的命令集并退出脚本。

我已经完成了简单的 if-else,但我不确定如何将命令的标准输出合并到脚本中。有什么想法吗?

答案1

相关内容