따옴표로 묶인 목록을 얻는 방법

따옴표로 묶인 목록을 얻는 방법

사용자가 서버 이름, 사용자 이름 및 비밀번호를 입력한 후 Python 스크립트(IMAP을 통해 중복 이메일을 제거하는 데 사용됨)를 실행하는 스크립트가 있습니다. 첫 번째 부분은 폴더 목록을 가져오고 두 번째 부분은 이를 입력으로 사용합니다. 폴더 이름에 공백이 있는 경우를 제외하고는 모두 괜찮습니다. 이 경우 항목을 따옴표로 묶어야 합니다. 예를 들어 "Inbox" 괜찮습니다. '내 받은편지함'은 '내 받은편지함'으로 읽어야 합니다.

#!/bin/sh
# Delete all duplicate messages in all folders of said account.
# Note that we connect through SSL (-x) to the default port.

read -p "Server: " SERVER
read -p "Username: " USER
read -s -p "Password: " PASS
echo
echo ...........
echo FOLDER LIST
echo ...........
echo

# Next line generates list for display only

/tmp/IMAPdedup-master/imapdedup.py -s $SERVER -x -u $USER -w $PASS -l

# Next line generates list to be used by the do line - this is the entries that need 
to have each line in quotations

for folder in `/tmp/IMAPdedup-master/imapdedup.py -s $SERVER -x -u $USER -w $PASS -l`;

do /tmp/IMAPdedup-master/imapdedup.py -s $SERVER -x -u $USER -w $PASS $folder

done

답변1

이름을 인용할 필요는 없습니다.변하기 쉬운인용하십시오. 특히 스크립트가 작동하려면 for folder in ...루프를 다음으로 바꿔야 합니다.

/tmp/IMAPdedup-master/imapdedup.py -s "$SERVER" -x -u "$USER" -w "$PASS" -l | 
while IFS= read -r folder; do 
 /tmp/IMAPdedup-master/imapdedup.py -s "$SERVER" -x -u "$USER" -w "$PASS" "$folder"
done

이유를 이해하려면 다음 문서를 읽어 보시기 바랍니다.

관련 정보