我遇到了一个产生乱序输出的bash脚本的问题.
此脚本在多个地方使用,通常可以正常工作.
然而,在一个特定的目录中,它完全不同步并使其输出文件无用.
目录结构是相同的,它所采用的输入数据非常相似.(如果有所作为,请使用ClearCase.)
当bash功能正常时,其输出如下所示:
Techpack Meta Version is currently 3, has this changed? y/n n
Have Techpack Version Dependencies changed? y/n n
Updating Version Properties
Building TPI File
Inside make_tpi_file
Created ../package/12.0/M_E_LCHS_DATAGEN_R0E_b1.tpi
Checked out "package/12.0/" from version "/main/at_job/1".
Created element "package/12.0/M_E_LCHS_DATAGEN_R0E_b1.tpi" (type "compressed_file").
Created branch "at_job" from "package/12.0/M_E_LCHS_DATAGEN_R0E_b1.tpi" version "/main/0".
Checked out "package/12.0/M_E_LCHS_DATAGEN_R0E_b1.tpi" from version "/main/at_job/0".
Checked in "package/12.0/M_E_LCHS_DATAGEN_R0E_b1.tpi" version "/main/at_job/1".
Checked in "package/12.0/" version "/main/at_job/2".
Run Code Online (Sandbox Code Playgroud)
当bash不起作用时,其输出如下所示:
Techpack Meta Version is currently 3, has this changed? y/n n
Have Techpack Version Dependencies changed? y/n n
Updating Version Properties
Building TPI File
Inside make_tpi_file
_R0E_b1.tpipackage/12.0/M_E_HANF_DATAGEN
Checked out "package/12.0/" from version "/main/at_job/4".
_R0E_b1.tpi" (type "compressed_file").A_DATAGEN
_R0E_b1.tpi" version "/main/0".package/12.0/M_E_HANF_DATAGEN
_R0E_b1.tpi" from version "/main/at_job/0".
_R0E_b1.tpi" version "/main/at_job/1".GEN
Checked in "package/12.0/" version "/main/at_job/5".
/vobs/job/job_mg/test_tools/Data_Generator/HANF/FeatureTest/build
Checked in "install/version.properties" version "/main/at_job/14".
Checked in "../package/12.2/build.number" version "/main/at_job/4".
Run Code Online (Sandbox Code Playgroud)
一般来说,什么可能导致bash脚本产生这样一个受损的输出?
考虑到它适用于许多目录,我认为问题不在于代码本身,而在于脚本读取的数据.
说真的,你是否希望我们在看到它的输出时调试脚本?
这是一个很高的命令.
不过,我的猜测是(并注意它不能超过猜测,因为我不知道脚本在做什么)某种竞争条件,其中脚本的步骤彼此依赖但不是强制同步,在意外顺序完成时导致失败.
引用"代码是从某个地方复制"作为一个没有错误的原因也是非常离谱的,真的.