我正在编写bash脚本,将多个输出重定向到文件,然后按顺序读取文件。我发现有时其中一个重定向是在完成连续重定向之后写完成的。例如第2行在第1行之前完成。
Main.java:12: error: illegal start of expression
twoSum({2,4,7},9);
^
Main.java:12: error: ';' expected
twoSum({2,4,7},9);
^
Main.java:12: error: illegal start of expression
使用" sleep"解决了这个问题,但这是一个非常糟糕的解决方案。出于某种原因"等待"不起作用。什么是正确的解决方案?为什么"等待"功能不起作用?
谢谢!
编辑:
我对自己的脚本编写技巧感到有点惭愧,但这里是#!/ bin / bash的一部分:
line 1: a > a1
line 2: b > b1
运行八度音程我依赖于' files_string'中的文件名顺序在CLtot,CYtot等中组装数值矩阵。有时我会得到' files_string'是在Cntot'之前写的,在调用倒数第二个文件时,我希望数字值(来自' Cntot')但是我得到了字符(来自' files_string') 。 不用说它也发生在数值之间 - 它不会使我的代码崩溃,但它仍会导致逻辑错误。
答案 0 :(得分:0)
文件修改时间粒度仅为秒。如果ls
运行得足够快,则files_string
的时间戳将与Cntot
相同,因此-t
选项不会强制它们之间的特定排序。对于具有相同时间戳的文件,它按名称对它们进行排序。
在files_string
后按字母顺序使用Cntot
的名称,您应该得到正确的结果。
答案 1 :(得分:-2)
试一试a > a1 && b > b1