【发布时间】:2016-11-07 09:59:06
【问题描述】:
我是 linux 和 shell 脚本的新手。我想连接到 localhost 并与之交互。
#! /bin/bash
(exec /opt/scripts/run_server.sh)
当我执行这个 bash 脚本时,它开始监听一个端口。
Listening on port xxxxx
现在我想发出这个命令“telnet localhost xxxxx” 我尝试过这样的事情:
#! /bin/bash
(exec /opt/opencog/scripts/run_server.sh)&&
telnet localhost xxxxx
它仍在监听端口。但我认为第二个命令没有运行。我希望另一个窗口显示它正在像这样连接。
vishnu@xps15:~$ telnet localhost xxxx
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
server>
我将这些作为脚本执行的原因是,在服务器中我需要通过发出诸如“scm”“parse”等某些命令来自动执行某些过程......
vishnu@xps15:~$ telnet localhost xxxx
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
server>scm
Entering scheme shell; use ^D or a single . on a line by itself to exit.
guile> (parse "i eat apple")
我有很多文字要来。手动我不能为每个句子发出这个解析命令。所以我想自动化。所以我需要编写一个脚本来连接服务器并进行交互。
任何准则。最后如何与这个 guile shell 交互/发送命令?
【问题讨论】:
-
“但那行不通”是什么意思。实际上是什么意思?发生什么了? 要准确...
-
有什么理由必须在子shell中运行第一个脚本吗?
-
通常不需要在 shell 脚本中使用
(exec)。您这样做是因为特殊情况,还是因为您习惯了python或其他语言的 cmd?但是,即使你删除了这个例子,也不会做太多事情。让事情从 cmd 行开始工作。也许您需要使用/path/to/server -opts x y z file &在后台运行您的服务器?然后查看它是否在端口上响应 telnet 连接。祝你好运。 -
@shellter。是的,我可以手动连接到服务器。有用!!但在那之后我需要反复发出某些命令。我想自动化。如何与这个 guile shell 交互?
-
telnet 不会打开另一个窗口,它是一个控制台应用程序。看看“期待”。