echo
linux 명령을 사용하여 터미널에 메시지를 인쇄했습니다.
prayag@prayag$ echo "prayag works on JVM"
prayag works on JVM
print
명령을 사용하여 동일한 출력을 얻을 수 있습니까?
실제로 매뉴얼을 살펴보니 $ man print
Run-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
당신은 여기에서 많은 것을 혼란스럽게 하고 있습니다. 제가 당신을 위해 정리하도록 노력하겠습니다.
awk '{print}' ...
print
이것은 귀하가 질문한 질문과 관련이 없습니다.awk
자체 명령 중 하나를 포함하는 동적 프로그래밍 언어입니다print
.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 유형을 지정해야 합니다.
echo
이 명령은
echo
여러분이 사용하고 있는 Bash라는 셸에 내장된 명령입니다(Bash를 사용한다고 가정합니다). 다음 명령을 사용하여 이를 확인할 수 있습니다.$ type -a echo echo is a shell builtin echo is /bin/echo
echo
이 명령 은 독립 실행형 실행 파일이기도 함 을 알 수 있습니다/bin/echo
. 이 명령은 사용 중인 명령과 다르지만echo
목적은 비슷합니다.print
zsh/ksh와 같은 쉘에서@Gilles의 의견 덕분 에 찾고 있는 명령은 및/또는
print
와 같이 셸에 내장된 명령일 가능성이 높습니다 . 매뉴얼 페이지를 통해 사용법을 확인할 수 있습니다 .zsh
ksh
man 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 $fpath
vsecho $fpath | sed 's/ /\n/g'