0

以下のスクリプトは正常に動作します。しかし、リモート コピーにコマンドを追加して、変数 FILENAME にリモート コピーから受信したファイルを代入しようとすると、while ループが機能しません。私はスクリプト作成にまったく慣れていないため、不足しているものを見つけることができません。助けてください!

#!/bin/sh
#SCRIPT:  File processing
#PURPOSE: Process a file line by line with redirected while-read loop.
SSID=$1
ASID=$2
##rcp server0:/oracle/v11//dbs/${SSID}_ora_dir.lst /users/global/rahul/${ASID}_clone_dir.lst
##FILENAME=/users/global/rahul/${ASID}_clone_dir.lst
count=0
while read LINE
do
echo $LINE | sed -e "s/${SSID}/${ASID}/g"
count=`expr $count + 1`
done < $FILENAME
echo -e "\nTotal $count Lines read"
grep -v -e "pattern3" -e "pattern5" -e "pattern6" -e "pattern7" -e "pattern8" -e "pattern9" -e "pattern10" -e "pattern11" -e "
pattern12" ${ASID}_.lst > test_remote.test
4

1 に答える 1

0

「whileループが機能しない」と言ったときにエラーメッセージが表示された場合は、それを質問に含めて手がかりを与えてください。

rcpコマンドが成功してもよろしいですか?完了後にファイル/users/global/rahul/${ASID}_clone_dir.lstが存在rcpしますか?

ところで、あなたのwhileループは非効率的です。これは同等である必要があります。

sed -e "s/${SSID}/${ASID}/g" < "$FILENAME"
count=$(wc -l "$FILENAME" | awk '{print $1}')
echo -e "\nTotal $count Lines read"
于 2013-02-23T07:31:51.297 に答える