我想要的循環代碼適應從慶典到CSH:適應bash的循環是在csh使用
while read file; do
if ! UPLOAD_FILE=$(ls "$UPLOAD_ARCHIVE_DIR"/*$file* 2>/dev/null); then
echo "could not find $file"
((MISSING_COUNTER++))
continue
fi
ls -l "$UPLOAD_FILE" | sed 's/^[^ ]* *[^ ]* *[^ ]* *[^ ]* *[^ ]* *//'
cp "$UPLOAD_FILE" "$PROCESS_FILES_DIR"
DOS_FILE=$(basename "$UPLOAD_FILE")
SOR_FILE=$(echo $DOS_FILE | sed 's/.dat/.sor/')
unix2dos "$PROCESS_FILES_DIR"/"$DOS_FILE" 1>/dev/null 2>&1
mv "$PROCESS_FILES_DIR"/"$DOS_FILE" "$UPLOAD_PROCESS_DIR"
((FOUND_COUNTER++))
done < "$1"
輸入信息來自變量$輸入,幷包含一個列表,這裏是一個樣本記錄清單:PL000000002002638908
到目前爲止,我試圖用foreach和while循環沒有成功,任何幫助都非常感謝它!
你爲什麼這樣做? bash通常被認爲是一種更好的腳本語言。 (我不確定在csh中模擬'while read ...'循環的效果。)例如,請參閱http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot。 –
這個問題似乎是無關緊要的,因爲它太寬泛。應該編輯這個問題,詢問您翻譯時遇到的特定問題的具體問題,而不是廣泛詢問大量代碼。 –
@ keith-thompson我需要使用csh的原因是因爲它是服務器上唯一的環境,他們拒絕使用bash。 – sayayinx