我有一个shell脚本应该在ubuntu上运行程序。如果我双击它,它会问我想做什么:
在终端中运行,显示,取消,运行。
如果我选择Run in terminal,它可以正常工作。但如果我按Run,则没有任何反应。为什么呢?
这是脚本:
Wrapper<Person> wrapped = objectMapper.readValue(jsonStream,Wrapper.class);
答案 0 :(得分:2)
Run in terminal
- 打开一个新的终端窗口并执行给定的应用程序/脚本,以便您可以看到输出。
Run
- 在后台执行给定的应用程序/脚本
因此,运行脚本时不会得到任何输出。
答案 1 :(得分:1)
脚本无法启动终端模拟器。
如果您选择&#34;在终端&#34;中运行,则启动终端仿真器并将可执行文件/脚本连接到终端。
如果您选择&#34;运行&#34;,脚本将尝试从stdin读取并冻结,因为它未连接到终端。
这可能有用,如果确实如此,那么如果你选择&#34;在终端中运行&#34;或者只是&#34;运行&#34;。
#!/bin/sh
if [ -z "$TERM" ]; then
x-terminal-emulator -e "bash -c 'rlwrap sicstus; echo Press any key; read'"
else
rlwrap sicstus
fi