읽기 명령에 제한이 있나요?

읽기 명령에 제한이 있나요?

백업 코드(많은 숫자)를 파일에 저장할 수 있는 bash 스크립트를 작성하려고 합니다. 스크립트를 완료했지만 4096비트 코드만 저장할 수 있습니다.

나는 이것을 시도한다:

# Ask for backup code
read -p "Backup code:" backupcode
# Check backup code length
l="${#backupcode}"
m=4096
if (( l > m )); then
    echo -e "${RED}ERROR:${NC} Backup is too large! The limit is 4096 digits."
else
    # Save backup code in the file
    echo $backupcode > "${path[$i]}"
fi

백업이 너무 크다는 것을 감지하지 못하는 것 같습니다. 그래서 읽기 명령과 관련이 있는 것 같아요.

제한 사항이 있는 경우 read사용할 수 있는 대안이 있습니까?

답변1

명령 자체에는 제한이 없습니다 read. 그러나 터미널의 단일 라인에 대한 입력 수에는 제한이 있습니다. 이를 확인하려면 명령을 실행 wc -c하고 긴 줄을 입력해 보세요. 동일한 제한인 4096바이트에 도달하게 됩니다.

한도를 초과하여 입력하려면 코드가 여러 줄, 각 줄이 충분히 짧도록 정렬하거나 터미널에서 직접 읽는 대신 다른 방법으로 입력할 수 있습니다.요리 모드.

readline이 활성화되면 bash는 문자를 하나씩 읽으며 사용 가능한 메모리를 제외하고 줄 길이에는 제한이 없습니다.

read -e -p "Backup code:" backupcode

그러나 터미널에서 이렇게 긴 입력을 읽는 것은 매우 열악한 사용자 인터페이스입니다. 사용자는 거기 앉아서 수천 개의 문자를 입력하지 않습니다. 대신 입력을 읽으십시오.클립보드에서또는 파일에서.

관련 정보