pra*_*upd 8 shell echo command
我只需使用 linuxecho
命令在终端中打印一条消息即可。
prayag@prayag$ echo "prayag works on JVM"
prayag works on JVM
Run Code Online (Sandbox Code Playgroud)
我可以与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"
Run Code Online (Sandbox Code Playgroud)
它要求提供文件,并提供文件。
$ 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"
Run Code Online (Sandbox Code Playgroud)
但是通过awk
提供的文件与命令结合使用,
$ awk '{print}' application.properties
prayag works on JVM
Run Code Online (Sandbox Code Playgroud)
slm*_*slm 20
你在这里混淆了很多东西,让我试着为你梳理一下。
awk '{print}' ...
这与print
你问的无关。awk
是一种动态编程语言,它包含自己的命令,其中print
之一。
print --"text/plain" "prayag works on JVM"
和其他形式
该命令print
用于根据 mailcap 文件的内容显示文件,为每个特定文件类型使用指定的“处理程序”,而不是将字符串打印到屏幕上。
摘自打印手册页
run-mailcap、查看、查看、编辑、撰写、打印 - 通过 mailcap 文件中的条目执行程序
run-mailcap(或其任何别名)将使用给定的操作依次处理每个 MIME 类型/文件。每个文件都是spec?被定义为它的 MIME 类型、它的编码(例如压缩)和文件名,用冒号分隔。如果省略 mime-type,则通过尝试将文件的扩展名与 mime.types 文件中的扩展名进行匹配来尝试确定类型。如果省略编码,也将根据文件的扩展名来确定。当前支持的编码是 gzip (.gz)、bzip (.bz)、bzip2 (.bz2) 和 compress (.Z)。文件名“-”可用于表示“标准输入”,但必须指定 MIME 类型。
echo
该命令echo
是您正在使用的名为 Bash 的 shell 的内置命令(我假设您正在使用 Bash)。您可以使用以下命令确认这一点:
$ type -a echo
echo is a shell builtin
echo is /bin/echo
Run Code Online (Sandbox Code Playgroud)
您会注意到它echo
也是一个独立的可执行文件,/bin/echo
. 这与echo
您使用的命令不同,但用途相似。
print
在诸如 zsh/ksh 之类的 shell 中
感谢@Gilles 的评论,print
您正在寻找的命令很可能是内置于 shell 中的命令,例如zsh
and/or ksh
。您可以通过手册页查看其用法man zshbuiltins
。
zsh % print "hello world"
hello world
Run Code Online (Sandbox Code Playgroud)
您可以通过键入zsh
或来运行这些 shell 之一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
Run Code Online (Sandbox Code Playgroud)
该命令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"
Run Code Online (Sandbox Code Playgroud)
上面几行说如果你得到一个 mime-type 的文件audio/mpeg
,那么使用该工具/usr/bin/mplayer
打开这个文件。
这些规则通常由电子邮件工具使用,但其他工具也可以利用mailcap
文件中的这些条目。
如果您有兴趣了解有关 mime-types 或 mailcap 的更多信息,请参阅以下参考资料。