"-diary.txt-"라는 파일이 있는데 그 내용을 가져와야 합니다. 를 사용하여 읽으려고 하면 echo < "-diary.txt-"
빈 문자열이 반환됩니다. 나는 약간의 조사를 했고 다음과 같은 결론을 내렸습니다 echo "$(<-diary.txt-)"
. 내 컴퓨터에서 테스트했는데 제대로 작동하지만 서버에 로그인하면 여전히 빈 문자열이 반환됩니다. 다음 명령만 사용할 수 있습니다:
. : [ [[ alias bg break cd chdir command continue echo eval exec exit export false fg getopts hash help history jobs kill let local printf pwd read readonly return set shift source test times trap true type ulimit umask unalias unset wait
. 어떻게 해야 합니까?
답변1
$(<file)
zsh
는 Korn 셸의 특수한 구성으로, 이제 and 를 포함한 몇 가지 다른 구성에서도 지원되지만 bash
그게 전부입니다(참조:Bash의 파일 읽기 명령 대체 이해).
이를 지원하지 않는 POSIX와 유사한 쉘에서는 아무 것도 확장되지 않습니다.
명령 목록을 보면 유용한 방법으로 read
만 입력할 수 있는 것 같습니다 . 아무것도 읽히지 않으며 옵션 처리 및 변환 후에 인수만 출력합니다.read
echo
while IFS= read -r line || [ -n "$file" ]; do
printf '%s\n' "$line"
done < -diary.txt-
한 번에 한 줄씩 읽고 각 줄을 인쇄해야 합니다.printf
( echo
임의의 데이터와 함께 사용할 수 없다는 것은 아닙니다). 여기에 사용된 세 가지 명령( [
, read
및 ) 은 모두 printf
목록에 있으며 while; do; done
셸 ||
언어 구성입니다.
파일에 NUL 문자가 포함되어 있지 않은 한 이는 작동합니다. 파일이 개행 문자로 끝나지 않으면 출력에 추가됩니다.
쉘은 POSIX-sh와 유사하다고 가정하지만 명령 목록(대부분 sh
내장되어 있음)을 고려하면 이것이 가능합니다.
1, .
일명 source
파일을 읽을 수도 있지만 읽은 내용을 쉘 코드로 해석하려고 시도하므로 쓸모가 없습니다.