我需要一些脚本帮助。 Solaris 10和ksh。
我有一个名为/temp.list的文件,内容如下:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
所以,我有一个脚本,它读取这个列表并使用行值执行一些命令:
192.168.0.1
192.168.0.2
192.168.0.3
它可以工作,但是它会在第1行执行命令。当它结束时,它会进入第2行,然后连续进行直到结束。我想找到一种方法在列表的每一行同时执行命令ping。有办法吗?
提前谢谢!
Marcus Quintella
答案 0 :(得分:0)
正如Ari的建议,使用Google搜索ksh多线程会产生很多想法/解决方案。
一个简单的例子:
FILE_TMP="/temp.list"
while IFS= read line
do
ping $line &
done < "$FILE_TMP"
尾随&#39;&#39;说要在后台关闭ping命令,允许循环处理在ping命令在后台运行时继续。
&#39>当然,这只是你现在需要考虑的众所周知的冰山一角:
多个ping命令将转储输出到stdout(即,您将在控制台中获得一个ping输出的混合输出),因此您需要提供一些考虑如何处理多个输出流(例如,重定向到一个公共文件?重定向到单独的文件?)
您需要了解如何管理和(可能)终止在后台运行的命令[请参阅作业, ps , fg , bg , kill ]
如果在shell脚本中运行,您可能会发现自己想要暂停主shell脚本处理,直到完成所有后台作业[请参阅等待]
< / LI>