我有上傳分隔文件並處理它的任務。一旦處理完成,我要麼說它的成功,如果解析失敗,我需要拋出錯誤。我在子腳本中逐行讀取這個文件,然後在主腳本中處理它(所以我不能在讀取時使用ifs)。如何區分讀取時返回的錯誤以及shell腳本中的EOF
在所有行被解析的情況下,我將其重命名爲.done。現在我想知道在EOF達到之前何時出現錯誤,以便我可以將其重命名爲.err。如果我在最後有一個沒有換行符的文件呢?
結構如下主要是:
Main script:
Calls parent script with filepath
gets the fileName and no of line in the files, calls the Child script with a nth line no in a loop until total no of lines are reached
Parent script:
#some validations to get the txt file from the list of files
...
fileName=`ls -A1 *.txt`
...
Child script:
...
lineno=$1
fileName=$2
noOfLines=$3
line=`tail -$lineno $fileName | head -n1`
if [ $lineno -eq $noOfLines ]
then
noExt="${fileName%.*}"
mv "$fileName" "$noExt.done" #success case
fi
現在我還需要重命名該文件,如果其錯誤或解析失敗.ERR。 請讓我知道如何捕捉錯誤。
'mksh'支持'$ {PIPESTATUS [*]}''。 – mirabilos