Я пытаюсь адаптировать код цикла от Баша до CSH:Адаптировать петлю Баша будет использование в 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 и в то время как петли без успеха, любая помощь очень ценит это!
Почему вы это делаете? bash, как правило, считается гораздо более понятным языком сценариев. (Я не уверен, насколько хорошо цикл while while read может быть эмулирован в csh.) См. Например, http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot. –
Этот вопрос не соответствует теме, потому что он слишком широк. Вопрос должен быть отредактирован для того, чтобы задать конкретные вопросы о конкретных деталях, с которыми у вас возникли проблемы с переводом, а не просто рассказать о большом блоке кода. –
@ keith-thompson Причина, по которой мне нужно использовать csh, заключается в том, что это единственная среда на сервере, и они отказали мне в использовании bash. – sayayinx