命令输出为变量

时间:2016-11-22 16:24:52

标签: bash shell gunzip

我正在编写一个PBS脚本来同时处理多个文件并执行多个操作。

我想首先解压缩.gz文件(我后来压缩),然后处理解压缩文件。

以下内容将解压缩$file中的文件,但是一旦我解压缩文件,我希望变量$file引用解压缩版本:

for file in $READS/*2.fq.gz;
do
    gunzip $file
    # continue script with the gunzipped file  
done

类似的东西:

for file in $READS/*2.fq.gz;
do
    file=gunzip $file
    # continue script with the gunzipped file  
done

1 个答案:

答案 0 :(得分:3)

您想删除$ file上的.gz后缀:

file=${file%.gz}

请注意,您可能想检查gunzip命令的结果,看它是否失败:

for file in $READS/*2.fq.gz;
do
    if gunzip $file; then
        file=${file%.gz}
        # continue script with the gunzipped file
    else
        # gunzip failed (corrupt file?) and already output an error message
        # try to recover?
    fi
done