Eu simplesmente posso imprimir uma mensagem no terminal usando o echo
comando linux .
prayag@prayag$ echo "prayag works on JVM"
prayag works on JVM
Posso ter a mesma saída com o print
comando
Na verdade, eu $ man print
analisei os manuais deles, onde o descreve como Run-mailcap-programs, termo que nunca ouvi antes. E soube que ele é usado para encontrar o programa correto para abrir um arquivo, com base no MIME.
Então, existe alguma maneira de imprimir uma linha simples usando print
sozinho em vez de echo
?
Encontrei um problema semelhante no Need to atribuir o conteúdo de um arquivo de texto a uma variável em um script bash , mas pessoas sugerindo echo
por print
lá.
Tentei seguir, mas tenho problemas.
$ 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"
Ele pede um arquivo, com o arquivo fornecido.
$ 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"
Mas comecei a trabalhar em combinação com o awk
comando com um arquivo fornecido,
$ awk '{print}' application.properties
prayag works on JVM
Respostas:
Você está confundindo muitas coisas aqui, deixe-me tentar separar isso para você.
awk '{print}' ...
Isso não tem nada a ver com o que
print
você está perguntando.awk
é uma linguagem de programação dinâmica que contém seus próprios comandos, sendoprint
um deles.print --"text/plain" "prayag works on JVM"
e outras formasO comando
print
é para exibir arquivos de acordo com o conteúdo do arquivo mailcap, usando o "manipulador" designado para cada tipo de arquivo específico, não para imprimir seqüências na tela.trecho da página de manual de impressão
echo
O comando
echo
é um comando interno do shell que você está usando chamado Bash (suponho que você esteja usando o Bash). Você pode confirmar isso usando este comando:Você notará que
echo
também é um executável independente/bin/echo
,. Este é um comando diferente do queecho
você está usando, mas serve a um propósito semelhante.print
em conchas como zsh / kshGraças ao comentário do @Gilles, o
print
comando que você está procurando provavelmente é aquele que está embutido em shells comozsh
e / ouksh
. Você pode ver seu uso na página de manualman zshbuiltins
,.Exemplo
Você pode executar um desses shells digitando
zsh
ouksh
.printf
Talvez você esteja procurando o comando
printf
?O comando
printf
usa um conjunto de formatação de caracteres especiais para que você possa instruí-lo como deseja exibir itens como cadeias de caracteres ou dígitos, etc. Consulte a página de manual paraprintf
.mailcap
Então, muitas pessoas provavelmente estão alheias ao arquivo
/etc/mailcap
. Este arquivo contém tipos MIME (cabeçalhos de arquivos que identificam que tipo de arquivo é um arquivo). Você pode criar entradas nessemailcap
arquivo que designam qual ferramenta usar para abrir um tipo mime específico para um arquivo.Exemplo
As linhas acima dizem que, se você obtiver um arquivo com o tipo MIME
audio/mpeg
, use a ferramenta/usr/bin/mplayer
para abrir esse arquivo.Essas regras geralmente são usadas pela ferramenta de email, mas outras ferramentas também podem se beneficiar dessas entradas no
mailcap
arquivo.Se você estiver interessado em aprender mais sobre tipos mime ou mailcap, consulte as seguintes referências.
Referências
fonte
print
também é um ksh (e zsh) embutido, semelhante,echo
mas sem as peculiaridades históricas. Essa é provavelmente a origem última do motivo pelo qual o solicitante dessa pergunta do SO usouprint
.Você pode usar o comando printf para fazer isso,
Bem, exatamente você precisa usar o commnad de impressão e adicionar o alias
também para definir permanente,
tão,
fonte