변수 끝에 개행 문자가 포함되어 있는지 확인하고 싶습니다. 어떡해?
답변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")
명령 대체는 개행 문자를 제거합니다. 사실은 벗겨지는데모두후행 개행은 파일 기본 이름의 일부인 개행도 제거하므로 오류로 간주될 수 있습니다.