Bash,cygwin,带用户输入的运行命令(禁用进程切换)

时间:2016-06-27 19:26:09

标签: bash cygwin

我想在控制台中运行命令并插入所需的所有用户数据。

#!/bin/bash
program < data &

我的代码有效,但在不到第二个程序消失后(仅闪烁)。 如何运行程序,从文件传递数据并保留在该程序中(我不需要在应用程序启动后继续使用bash脚本。)

1 个答案:

答案 0 :(得分:1)

由于您正在启动的程序从其标准输入中读取数据,因此可以合理地假设当您说要“保留在该程序中”时,您意味着您希望能够以交互方式进行进一步输入。此外,我认为程序消失/闪烁是因为它与终端断开连接(通过@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); namesArray.add("Android"); namesArray.add("Iphone"); namesArray.add("Windows Phone"); Bundle bundle = new Bundle(); bundle.putStringArrayList("valuesArray", namesArray); namesFragment myFragment = new namesFragment(); myFragment.setArguments(bundle); fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.add(R.id.main_container, myFragment); fragmentTransaction.commit(); } 运算符的操作),或者因为它在标准输入上检测到文件结束时终止。

如果目标只是在交互式输入之前添加一些预设输入,那么您应该能够通过管道来自&的输入来实现:

cat

cat data - | program 的{​​{1}}参数指定标准输入。 -首先读取文件cat并将其写入标准输出,然后将数据从其标准输入转发到其标准输出。所有输出都被输入cat的标准输入。不需要data,也不要将任何一个命令放入后台,因为它会将它从终端断开(program从中获取输入,exec可能是,写输出)。