【问题标题】:Send Ctrl + d to a server via bash通过 bash 将 Ctrl + d 发送到服务器
【发布时间】:2017-12-28 20:06:11
【问题描述】:

我正在编写一个脚本,要求您在完成输入时按control + d。我想发送这个命令,这样我就可以编写我的工作脚本,而不必重做我的工作。

【问题讨论】:

  • 那么你的问题是什么?
  • Ctl-d 就是您从交互式终端发送 EOF 的方式。如果您将输入管道输入到程序,它将在管道末端获得 EOF,您不需要做任何特殊的事情。

标签: bash rhel6


【解决方案1】:

您可能正在谈论用于指示用户输入结束的“传输结束”分隔符。如果是这种情况,那么您始终可以将数据通过管道传输到您的脚本中。也就是说,而不是这个:

$ test_script.sh
My input!
^D

你会将该数据写入文件:

$ cat > input
My input!
^D

然后将其导入脚本:

$ test_script.sh < input

不需要^D,因为一旦该文件被完全读取,脚本就会相应地发出信号。 &lt; shell 操作符将 STDIN 切换为从文件而不是终端读取。同样,&gt; 可用于捕获程序的输出并将其保存到文件中,如此处的第二步中所做的那样,尽管您可以使用任何您想要创建或编辑该输入文件的工具。

这几乎适用于任何脚本语言,从 Python、Perl、Ruby 到 Node.js 以及 bash 和其他 shell。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2015-04-07
    • 2014-05-10
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多