我正在处理继承来的Shell脚本,遇到了一个我从未见过的语法。
host = 192.[mask]
port = 2[mask]
( echo open ${host} ${port}
...about six other commands
echo exit ) | telnet
现在,垂直线之前的内容是有意义的。这只是在服务器上打开和运行命令的命令。
但是,
telnet
呼叫实际上是做什么的?括号和竖杠的语法是什么意思?我的最佳猜测是它打开了 telnet,然后从 telnet 中运行以下命令,但我想确定一下。
{...}
还是(...)
,都会有一个子shell,因为存在管道。在许多方面,最大的区别是语法上的;I/O重定向的}
必须出现在命令可以出现的地方,即分号或换行符之后,通常是在新行上。子shell的)
受到的限制较少。 - Jonathan Leffler