Ich kann einfach eine Nachricht im Terminal mit dem Linux- echo
Befehl drucken .
prayag@prayag$ echo "prayag works on JVM"
prayag works on JVM
Kann ich die gleiche Ausgabe mit print
Befehl haben.
Ich habe tatsächlich ihre Handbücher durchgesehen, wo $ man print
es als Run-Mailcap-Programme beschrieben wird, welchen Begriff ich noch nie zuvor gehört habe. Und erfuhr, dass es verwendet wird, um das richtige Programm zum Öffnen einer Datei zu finden, basierend auf MIME.
Gibt es also eine Möglichkeit, eine einfache Zeileprint
allein zu drucken , anstatt echo
?
Gefunden ähnliche Art von Problem bei Bedarf den Inhalt einer Textdatei auf eine Variable in einem Bash - Skript zuweisen , aber die Leute darauf hindeutet , echo
über print
dort.
Ich habe versucht zu folgen, aber Probleme bekommen.
$ 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"
Es wird nach einer Datei gefragt, wobei die Datei bereitgestellt wird.
$ 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"
Aber in Kombination mit awk
Befehl mit einer bereitgestellten Datei arbeiten,
$ awk '{print}' application.properties
prayag works on JVM
Antworten:
Sie verwirren hier viele Dinge, lassen Sie mich versuchen, dies für Sie auseinander zu ziehen.
awk '{print}' ...
Dies hat nichts mit dem zu tun
print
, wonach Sie fragen.awk
ist eine dynamische Programmiersprache, die ihre eigenen Befehle enthält, von denenprint
einer einer ist.print --"text/plain" "prayag works on JVM"
und andere FormenDer Befehl
print
dient zum Anzeigen von Dateien gemäß dem Inhalt der Mailcap-Datei unter Verwendung des festgelegten "Handlers" für jeden bestimmten Dateityp und nicht zum Drucken von Zeichenfolgen auf dem Bildschirm.Auszug aus der Druck-Manpage
echo
Der Befehl
echo
ist ein integrierter Befehl für die von Ihnen verwendete Shell namens Bash (ich gehe davon aus, dass Sie Bash verwenden). Sie können dies mit diesem Befehl bestätigen:Sie werden feststellen, dass dies
echo
auch eine eigenständige ausführbare Datei ist/bin/echo
. Dies ist ein anderer Befehl als der vonecho
Ihnen verwendete, dient jedoch einem ähnlichen Zweck.print
in Schalen wie zsh / kshDank des @ Gilles-Kommentars ist der gesuchte
print
Befehl höchstwahrscheinlich derjenige, der in Shells wiezsh
und / oder integriert istksh
. Sie können seine Verwendung über die Manpage sehenman zshbuiltins
.Beispiel
Sie können eine dieser Shells ausführen, indem Sie
zsh
oder eingebenksh
.printf
Vielleicht suchen Sie nach dem Befehl
printf
?Der Befehl verwendet
printf
einen Formatierungssatz von Sonderzeichen, damit Sie ihm mitteilen können, wie Sie Dinge wie Zeichenfolgen oder Ziffern usw. anzeigen möchten. Weitere Informationen finden Sie in der Manpageprintf
.Mailcap
Viele Leute sind sich der Datei wahrscheinlich nicht bewusst
/etc/mailcap
. Diese Datei enthält MIME-Typen (Header aus Dateien, die angeben, um welchen Dateityp es sich bei einer Datei handelt). Sie können dann Einträge in diesermailcap
Datei erstellen, die angeben , mit welchem Tool ein bestimmter MIME-Typ für eine Datei geöffnet werden soll.Beispiel
Die obigen Zeilen besagen, dass Sie diese Datei mit
audio/mpeg
dem Tool/usr/bin/mplayer
öffnen können , wenn Sie eine Datei mit dem MIME-Typ erhalten .Diese Regeln werden im Allgemeinen vom E-Mail-Tool verwendet, aber auch andere Tools können diese Einträge in der
mailcap
Datei nutzen.Wenn Sie mehr über MIME-Typen oder Mailcap erfahren möchten, lesen Sie die folgenden Referenzen.
Verweise
quelle
print
ist auch ein ksh (und zsh) eingebaut, ähnlich,echo
aber ohne die historischen Macken. Das ist wahrscheinlich der ultimative Grund, warum der Fragesteller dieser SO-Frage verwendet hatprint
.Sie können dazu den Befehl printf verwenden.
Nun, genau müssen Sie print commnad verwenden, dann können Sie einen Alias hinzufügen
auch dauerhaft zu setzen,
damit,
quelle