首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash I/O重定向序列

bash I/O重定向序列
EN

Stack Overflow用户
提问于 2016-05-01 09:32:58
回答 2查看 59关注 0票数 0

我正在编写bash脚本,将几个输出重定向到文件,然后读取文件,以便编写它们。我发现,有时重定向中的一个是在之后编写,连续的重定向已经完成。例如,第2行在第1行之前是完整的。

代码语言:javascript
复制
line 1:   a > a1
line 2:   b > b1

使用“睡眠”在字里行间空转是可行的,但这是一个非常糟糕的解决方案。因为某种原因“等待”不起作用。正确的解决办法是什么?为什么“等待”功能不起作用?

谢谢!

编辑:

我对我的脚本技巧感到有点羞愧,但是下面是#!/bin/bash的一部分:

代码语言:javascript
复制
grep Alpha output.dat | cut -d'=' -f2 | cut -d'.' -f1 > ./$run_dir/Alpha
grep Beta output.dat | cut -d'=' -f2 | cut -d'.' -f1 > ./$run_dir/Beta
grep flap output.dat | cut -d'=' -f2 > ./$run_dir/flap_angle
grep CLtot output.dat | cut -d'=' -f2 > ./$run_dir/CLtot
grep CYtot output.dat | cut -d'=' -f2 | cut -c-10 > ./$run_dir/CYtot
grep Cltot output.dat | cut -d'=' -f3 | cut -c-10 > ./$run_dir/Cltot
grep Cmtot output.dat | cut -d'=' -f3 | cut -c-10 > ./$run_dir/Cmtot
grep Cntot output.dat | cut -d'=' -f3 | cut -c-10 > ./$run_dir/Cntot
ls -tr ./$run_dir > ./$run_dir/files_string
cd ./$run_dir
octave ../assemble_matrix.m

运行八度时,我依赖于“files_string”中文件名的顺序来组装CLtot、CYtot等中的数值矩阵。有时,我知道'files_string‘写在'Cntot’之前,在调用第二个到最后一个文件时,我希望得到数字值(来自'Cntot'),但是我得到了字符(来自'files_string')。不用说,它也发生在数值之间--它不会使我的代码崩溃,但它仍然会导致逻辑错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-02 16:06:25

文件修改时间粒度仅为第二位。如果ls运行得足够快,files_string的时间戳将与Cntot相同,因此-t选项不会强制它们之间进行特定的排序。对于具有相同时间戳的文件,它按名称对它们进行排序。

使用files_string的名称(按字母顺序排在Cntot后面),您应该得到正确的结果。

票数 0
EN

Stack Overflow用户

发布于 2016-05-01 14:18:56

试试看,a > a1 && b > b1

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36965143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档