에코 대신 Linux에서 인쇄 명령

에코 대신 Linux에서 인쇄 명령

echolinux 명령을 사용하여 터미널에 메시지를 인쇄했습니다.

prayag@prayag$ echo "prayag works on JVM"
prayag works on JVM

print명령을 사용하여 동일한 출력을 얻을 수 있습니까?

실제로 매뉴얼을 살펴보니 $ man printRun-mailcap-programs라고 설명되어 있었는데, 이전에 들어본 적이 없는 용어였습니다. MIME 기반 파일을 여는 올바른 프로그램을 찾는 데 사용된다는 것을 배웠습니다.

그래서 무엇을 할 수 있습니까?간단한 라인을 인쇄하세요print대신 단독으로 사용하시겠습니까 echo?

비슷한 문제 발견Bash 스크립트의 변수에 텍스트 파일의 내용을 할당해야 합니다.echo, 그런데 거기 사람들이 그것을 제안했어요 print.

따라해 보았지만 문제가 발생했습니다.

$ print --"text/plain" "prayag works on JVM"
Warning: unknown mime-type for "prayag works on JVM" -- using "application/octet-stream"
Error: no such file "prayag works on JVM"

문서를 요청해서 제공합니다.

$ print --"text/plain" application.properties 
Warning: unknown mime-type for "application.properties" -- using "application/octet-stream"
Error: no "print" mailcap rules found for type "application/octet-stream"

awk하지만 명령과 제공된 파일을 조합하면

$ awk '{print}' application.properties 
prayag works on JVM

답변1

당신은 여기에서 많은 것을 혼란스럽게 하고 있습니다. 제가 당신을 위해 정리하도록 노력하겠습니다.

  1. awk '{print}' ...

    print이것은 귀하가 질문한 질문과 관련이 없습니다. awk자체 명령 중 하나를 포함하는 동적 프로그래밍 언어입니다 print.

  2. print --"text/plain" "prayag works on JVM"그리고 다른 형태

    이 명령은 print화면에 문자열을 인쇄하는 대신 각 특정 파일 유형에 대해 지정된 "처리기"를 사용하여 mailcap 파일의 내용을 기반으로 파일을 표시하는 데 사용됩니다.

    매뉴얼 페이지에서 발췌한 내용 인쇄

    run-mailcap, 보기, 보기, 편집, 작성, 인쇄 - mailcap 파일의 항목을 통해 프로그램 실행

    run-mailcap(또는 그 별칭)은 주어진 작업을 사용하여 각 MIME 유형/파일을 차례로 처리합니다. 각 파일은 MIME 유형, 인코딩(예: 압축) 및 파일 이름을 콜론으로 구분하여 지정합니다. mime-type이 생략되면 파일 확장자를 mime.types 파일의 확장자와 일치시켜 유형을 결정하려고 시도합니다. 인코딩이 생략되면 파일 확장자에 따라 결정됩니다. 현재 지원되는 인코딩은 gzip(.gz), bzip(.bz), bzip2(.bz2) 및 압축(.Z)입니다. 파일 이름 "-"는 "표준 입력"을 나타내는 데 사용할 수 있지만 MIME 유형을 지정해야 합니다.

  3. echo

    이 명령은 echo여러분이 사용하고 있는 Bash라는 셸에 내장된 명령입니다(Bash를 사용한다고 가정합니다). 다음 명령을 사용하여 이를 확인할 수 있습니다.

    $ type -a echo
    echo is a shell builtin
    echo is /bin/echo
    

    echo이 명령 은 독립 실행형 실행 파일이기도 함 을 알 수 있습니다 /bin/echo. 이 명령은 사용 중인 명령과 다르지만 echo목적은 비슷합니다.

  4. printzsh/ksh와 같은 쉘에서

    @Gilles의 의견 덕분 에 찾고 있는 명령은 및/또는 print와 같이 셸에 내장된 명령일 가능성이 높습니다 . 매뉴얼 페이지를 통해 사용법을 확인할 수 있습니다 .zshkshman zshbuiltins

    zsh % print "hello world"
    hello world
    

    zsh또는 를 입력하여 이러한 셸 중 하나를 실행할 수 있습니다 ksh.

인쇄 기능

어쩌면 당신은 명령을 찾고 있습니까 printf?

$ printf "%s\n" "hello stringy world"
hello stringy world

$ printf "this is some padded digits: %04d\n" "10"
this is some padded digits: 0010

명령은 printf문자열이나 숫자 등을 표시하는 방법을 지시할 수 있도록 특수 문자 집합으로 형식이 지정됩니다. 매뉴얼 페이지를 참조하십시오 printf.

메일 캡

너무 많은 사람들이 이 파일을 잊어버렸을 수도 있습니다 /etc/mailcap. 파일에는 MIME 유형(파일의 파일 유형을 식별하는 파일 헤더)이 포함되어 있습니다. 그런 다음 mailcap파일의 특정 MIME 유형을 여는 데 사용해야 하는 도구를 지정하는 항목을 이 파일에 만들 수 있습니다 .

text/html; /usr/bin/sensible-browser '%s'; description=HTML Text; nametemplate=%s.html
application/x-troff-man; /usr/bin/nroff -mandoc -Tutf8; copiousoutput; print=/usr/bin/nroff -mandoc -Tutf8 | print text/plain:-
application/x-ogg; /usr/bin/mplayer '%s'; description="OggVorbis Audio"
application/ogg; /usr/bin/mplayer '%s'; description="OggVorbis Audio"
audio/mpeg; /usr/bin/mplayer '%s'; description="MPEG Audio Format"
audio/x-mpegurl; /usr/bin/mplayer '%s'; description="Icecast Playlists"
audio/x-ms-wax; /usr/bin/mplayer '%s'; description="Audio Format"

위의 줄은 mime-type 파일을 얻은 경우 audio/mpeg이 도구를 사용하여 /usr/bin/mplayer파일을 열라는 의미입니다.

mailcap이러한 규칙은 일반적으로 이메일 도구에서 사용되지만 다른 도구에서도 파일의 이러한 항목을 활용할 수 있습니다.

MIME 유형이나 mailcap에 대해 자세히 알아보려면 다음 리소스를 참조하세요.

인용하다

답변2

printf 명령을 사용하여 이 작업을 수행할 수 있습니다.

 # printf Hello World
 Hello

 # printf "Hello World"
 Hello World

글쎄요, print commnad를 사용해야 하고 그런 다음 별칭을 추가할 수 있습니다.

 # alias print='echo'

 # print Hello World
 Hello World

 # unalias print  < -- to revert.

영구적으로 설정할 수도 있습니다.

 # export print='echo'

 # print Hello Linux
 Hello Linux

그래서,

# export | grep print
declare -x print="echo"

# unset print   < -- to revert.
# export | grep print

답변3

  • printf: 더 휴대성이 뛰어난 C 스타일
  • 인쇄: 더 제어 가능함(ksh, zsh)

zsh의 경우 print가 echo보다 낫다고 생각합니다.

각 항목을 별도의 줄에 표시:
print -l $fpathvsecho $fpath | sed 's/ /\n/g'

관련 정보