我想在控制台中运行命令并插入所需的所有用户数据。
#!/bin/bash
program < data &
我的代码有效,但在不到第二个程序消失后(仅闪烁)。 如何运行程序,从文件传递数据并保留在该程序中(我不需要在应用程序启动后继续使用bash脚本。)
答案 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
可能是,写输出)。