有没有直接从命令行与程序交互的方法?
例如,我有一个程序 ,data.o
它会生成一个文件mydata.out
,然后我想用 来绘制它gnuplot
。
我可以使用打开绘图程序gnuplot &
,然后我希望 shell 在我刚刚打开的这个作业/后台 shell 中以某种方式编写plot mydata.out
。 (gnuplot
只是一个例子,问题与在我可以从命令行打开而无需离开的每个程序中执行一些宏或热键类似)。
答案1
有些程序(例如 gnuplot)接受命令文件,可能更容易生成然后将其作为参数传递。
有些程序不依赖于交互,对于它们来说,通过管道传输到标准输入可能会起作用
( printf "my command\n" printf "my other command line\n" ) | theProgram and its args
其他依赖于交互和命令,它们的标准输入是终端,您必须使用
expect
或等效的终端。
答案2
实现 d-bus 的程序或服务可以从命令行或任何其他进程进行交互。https://developer.gnome.org/gio/2.29/gdbus.html谷歌搜索应该能让你深入了解进程间通信。