所以标题单独说话,但让我们更具体一点。
我们说我有一个"互动"程序谁读取STDIN每个用户输入"非正统"模式。 这个程序没有任何参数,你不能给他命令,直到你进入它。
以tig
命令为例或像csh
这样的shell(好的csh可以接受参数,但让他们说他不是这个例子)。
假设我想在一些特定输入之后将行为单元测试到程序中。
什么是在Linux和OSX上工作最干净的方式,谁不需要sudo ,将数据发送到程序并将结果输入我的单元测试程序?
到目前为止,我尝试了什么:
在 linux :
上printf "\E[B" (key arrow down) > /proc/$(pid)/fd/0
在 OSX :
上printf "\E[B" > /dev/$(tty)
printf "\E[B" > /dev/ustdin
但是当我执行这种命令时,我可以看到字符串进入我的进程的tty。但这个过程并不像他在STDIN上收到这些数据那样。
ex for csh:
printf "ls\x10\n" > /proc/$(pid)/fd/0
结果:
csh: ls
即使我试图让"返回"通过手动输入,csh没有收到ls
命令。