从java调用shell,它抱怨"stty:标准输入:无效的参数"

sol*_*tim 6 java bash csh

我从java调用Process类的shell命令并打印

"stty: standard input: Invalid argument" 
Run Code Online (Sandbox Code Playgroud)

无论命令是对还是错(也显示shell命令的正常输出).如果我在shell中运行shell命令,则不会显示此类错误消息.

命令是这样的: {"/bin/csh", "-c", "echo hello"}

Jon*_*erg 8

您正在调用您的stty命令.profile,或.bash_profile.您必须将其标准错误重定向到/dev/null.

stty blah blah blah 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

stty无法处理Java在shelling中提供的伪tty.


use*_*421 4

尝试使用-fcsh 选项来禁用 .chsrc 和 .login 文件的读取:

    {"/bin/csh", "-cf", "echo hello"}
Run Code Online (Sandbox Code Playgroud)