小编Equ*_*nox的帖子

使用 processBuilder 执行 shell 命令并与之交互

我正在尝试创建一个程序,允许我通过带有参数的终端(如果您想知道,它是用于树莓派的 OmxPlayer)执行命令,但我希望能够在启动后与它进行交互命令。

例如我想做: omxplayer -win x1 y1 x2 y2 然后可以按“p”暂停视频/音频媒体

我已经有了一些可以用参数启动 omxplayer 的东西(实际上它是“ls”,但它应该以完全相同的方式工作)但是我不明白一旦我通过 processBuilder 启动命令后如何与终端交互。

这是我目前所拥有的:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class Main1 {

    public static void main(String a[]){

        InputStream is = null;
        ByteArrayOutputStream baos = null;
        List<String> commands = new ArrayList<String>();
        commands.add("ls");
        commands.add("-l");
        commands.add("/");
        ProcessBuilder pb = new ProcessBuilder(commands);
        try {
            Process prs = pb.start();
            is = prs.getInputStream();
            byte[] b = new byte[1024];
            int size = 0;
            baos = new ByteArrayOutputStream();
            while((size = …
Run Code Online (Sandbox Code Playgroud)

java shell command process processbuilder

6
推荐指数
1
解决办法
8907
查看次数

将函数应用于矩阵的每个元素

我正在尝试将函数应用于Matrix但我不知道如何继续.

以下是我定义矩阵的方法:

data Matrice a = Mat [[a]]

montre [] = "/"
montre (t:q) = "" ++ (Pp.printf "%5s" (show t)) ++ " " ++ (montre q)

instance (Show a) => Show (Matrice a) where
        show (Mat ([])) = ""
        show (Mat (t:q)) = "/" ++ (montre t) ++ "\n" ++ (show (Mat q))
Run Code Online (Sandbox Code Playgroud)

然后,一旦我的Matrix被定义,我想将我的函数z95应用于矩阵的每个元素.

这是我的z95函数的签名(允许将整数转换为此整数模95)

z95 n = Z95(n %% 95)
z95 18 = 18%95
Run Code Online (Sandbox Code Playgroud)

我试图做一个双倍map访问我的矩阵的元素,但后来我没有弄清楚如何应用我的z95功能.

谢谢你的帮助!

haskell matrix

4
推荐指数
1
解决办法
780
查看次数

标签 统计

command ×1

haskell ×1

java ×1

matrix ×1

process ×1

processbuilder ×1

shell ×1