Shell脚本同时执行

时间:2019-05-16 11:56:36

标签: bash shell

我有一个脚本,其内容如下:

#!/bin/bash

DB_FILE='pgalldump.out'

echo $DB_FILE

DB_NAME=''

egrep -n "\\\\connect\ $DB_NAME" $DB_FILE | while read LINE
do

    DB_NAME=$(echo $LINE | awk '{print $2}')
    STARTING_LINE_NUMBER=$(echo $LINE | cut -d: -f1)

    STARTING_LINE_NUMBER=$(($STARTING_LINE_NUMBER+1))

    TOTAL_LINES=$(tail -n +$STARTING_LINE_NUMBER $DB_FILE | \
    egrep -n -m 1 "PostgreSQL\ database\ dump\ complete" | \
    head -n 1 | \
    cut -d: -f1)

    tail -n +$STARTING_LINE_NUMBER $DB_FILE | head -n +$TOTAL_LINES > /backup/$DB_NAME.sql
done

我知道它在做什么。但是在这种情况下,我对执行流程有疑问。在第egrep -n "\\\\connect\ $DB_NAME" $DB_FILE | while read LINE行,egrep将首先或同时运行。因为DB_NAME在代码开头为空。

在这种情况下,任何人都可以解释一下do的流程。

0 个答案:

没有答案
相关问题