이 스크립트에서 단일 역따옴표, 큰따옴표 및 >>의 역할을 이해하지 못합니다.

이 스크립트에서 단일 역따옴표, 큰따옴표 및 >>의 역할을 이해하지 못합니다.

이 예는 Linux 책에서 가져온 것입니다.

$ cat sort-wc
#!/bin/bash
# Sort files according to their line count
for f
do
    echo `wc -l <"$f» lines in $f
done | sort -n
$ ./sort-wc /etc/passwd /ect/fstab /etc/motd

내가 이해하지 못하는 것은 왜 백틱과 큰따옴표가 하나만 있고 그 기능이 무엇인지입니다 >>. >>파일에 쓰는 거 아닌가요 ?

답변1

121페이지에 나온 내용입니다."사용자와 관리자를 위한 Linux 소개"이는 본문의 인쇄상의 오류입니다. 이 스크립트는 tuxcademy의 다른 텍스트에서도 사용할 수 있지만 동일한 인쇄상의 오류가 있습니다.

이중 문자와 달리 단일 »문자 >>는 쉘 스크립트에 영향을 주지 않습니다. 내 생각엔 이 책의 텍스트 형식을 지정하는 데 사용된 조판 시스템이 "`어떤 이유로 혼동되어 guillemet(모퉁이 인용부호)으로 형식화했거나 «...»파일의 단순한 철자 오류(인용부는 일반 텍스트를 인용하는 데 사용됨) 인 것 같습니다. ).

스크립트는 다음과 같이 읽어야 합니다.

#!/bin/bash
# Sort files according to their line count
for f
do
    echo `wc -l <"$f"` lines in $f
done | sort -n

...하지만 더 잘 쓰여졌어

#!/bin/sh
# Sort files according to their line count

for f; do
    printf '%d lines in %s\n' "$(wc -l <"$f")" "$f"
done | sort -n

백틱은 의 옛 형태로 , 가변 데이터를 출력하는 데 $( ... )더 적합합니다. printf추가적으로 변수 확장, 명령 대체 등을 참고해야 하며, 이 스크립트는 어떠한 기능도 사용하지 않으므로 bash에서도 사용할 수 있습니다 /bin/sh.

관련된:

관련 정보