0
我有一个交互式程序,cmd
,我从批处理脚本运行。我插入输入为:终止批量交互式程序
cmd < $"yes\n3\nn\n"
这个程序cmd
是第三部分的软件,我不打算修改。
我需要在此字符串的末尾添加一些内容才能终止程序。事实是,我还没有找到完整的方法来关闭这个程序,到目前为止我已经用Control+C
关闭它。我怎样才能将它插入到输入字符串的末尾?
我有一个交互式程序,cmd
,我从批处理脚本运行。我插入输入为:终止批量交互式程序
cmd < $"yes\n3\nn\n"
这个程序cmd
是第三部分的软件,我不打算修改。
我需要在此字符串的末尾添加一些内容才能终止程序。事实是,我还没有找到完整的方法来关闭这个程序,到目前为止我已经用Control+C
关闭它。我怎样才能将它插入到输入字符串的末尾?
假设这确实是在Linux上的bash,我觉得有以下应该做你想要什么:
cmd < $'yes\n3\nn\n\cD'
%的bash hackers wiki,在$''
字符串,转义序列展开,\cD
是控制-d ,或文件结尾。正如评论者所说,你不应该需要明确的控制-D来执行一个行为良好的程序。 cmd
究竟是什么?也许它以奇特的方式操纵终端。如果是这样,另一种选择可能是使用kill
手动将SIGINT
或SIGHUP
发送给过程。类似于:
cmd < $'yes\n3\nn\n &
CMD_PID=$!
sleep 10 # or however long "cmd" usually takes
kill -s SIGINT "$CMD_PID" # or SIGHUP or SIGQUIT instead of SIGINT
您知道[tag:batch-file]与Windows有关吗?请重新考虑你申请的标签...... – aschipfl
“昨天的玫瑰以它的名字持久,我们持有空名。” (cit)不,我不知道,我认为它是shell脚本的同义词 – simona
也许你的意思是[标签:bash]?检查出相关的[标签信息](http://stackoverflow.com/tags/bash/info)... – aschipfl