bash 변수의 끝에 개행 문자가 포함되어 있는지 확인하십시오.

bash 변수의 끝에 개행 문자가 포함되어 있는지 확인하십시오.

변수 끝에 개행 문자가 포함되어 있는지 확인하고 싶습니다. 어떡해?

답변1

case $var in
  (*$'\n') echo ends in a newline;;
  (*) echo does not end in a newline;;
esac

변수 값이 개행 문자로 끝나는 경우는 매우 드뭅니다.

일반적으로 우리는 이를 제거한 다음 인쇄할 때 다시 추가합니다.

예를 들어:

echo "$var"

내용을 인쇄하고 $var(백슬래시로 시작하지 않고 -백슬래시를 포함하지 않는다고 가정), 그 뒤에 개행 문자가 옵니다. 아니면 명시적으로 이렇게 합니다:

printf '%s\n' "$var"

존재하다:

basename /path/to/file

basename산출. 이 개행 문자는 파일 기본 이름의 일부가 아니며 단지 출력이 한 줄인지 확인하기 위한 것입니다.file<newline>

존재하다:

var=$(basename -- "$file")

명령 대체는 개행 문자를 제거합니다. 사실은 벗겨지는데모두후행 개행은 파일 기본 이름의 일부인 개행도 제거하므로 오류로 간주될 수 있습니다.

관련 정보