perintah cetak bukannya gema di linux

7

Saya hanya dapat mencetak pesan di terminal menggunakan echoperintah linux .

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

Bisakah saya memiliki output yang sama dengan printperintah.

Saya benar-benar membaca manual mereka, di mana $ man printmenggambarkannya sebagai program Run-mailcap yang istilahnya belum pernah saya dengar sebelumnya. Dan mengetahui bahwa itu digunakan untuk menemukan program yang benar untuk membuka file dengan, berdasarkan MIME.

Jadi apakah ada cara untuk mencetak garis sederhana menggunakan printsendiri echo?

Menemukan masalah serupa di Need untuk menetapkan konten file teks ke variabel dalam skrip bash , tetapi orang-orang menyarankan echodi printsana.

Saya mencoba mengikuti, tetapi ada masalah.

$ 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"

Ia meminta file, dengan file yang disediakan.

$ 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"

Tetapi mulai bekerja dalam kombinasi dengan awkperintah dengan file yang disediakan,

$ awk '{print}' application.properties 
prayag works on JVM
prayagupd
sumber
OS apa yang Anda pakai?
slm
@slm Saya di ubuntu
prayagupd
OK, lihat jawaban saya dan beri tahu saya jika itu membantu
slm

Jawaban:

16

Anda membingungkan banyak hal di sini, izinkan saya mencoba dan menggoda ini untuk Anda.

  1. awk '{print}' ...

    Ini tidak ada hubungannya dengan yang printAnda tanyakan. awkadalah bahasa pemrograman dinamis yang berisi perintahnya sendiri, printsalah satunya adalah salah satunya.

  2. print --"text/plain" "prayag works on JVM" dan bentuk lainnya

    Perintahnya printadalah untuk menampilkan file per isi file mailcap, menggunakan "penangan" yang ditunjuk untuk setiap jenis file tertentu, bukan untuk mencetak string ke layar.

    kutipan dari halaman manual cetak

    run-mailcap, lihat, lihat, edit, tulis, cetak - jalankan program melalui entri dalam file mailcap

    run-mailcap (atau alias lainnya) akan menggunakan tindakan yang diberikan untuk memproses setiap jenis / file mime secara bergantian. Setiap file dispesifikasikan sebagai tipe pantomimnya, pengkodeannya (mis. Kompresi), dan nama file bersama, dipisahkan oleh titik dua. Jika tipe-mime dihilangkan, upaya untuk menentukan tipe dilakukan dengan mencoba mencocokkan ekstensi file dengan yang ada di file mime.types. Jika pengkodean dihilangkan, itu juga akan ditentukan dari ekstensi file. Pengkodean yang didukung saat ini adalah gzip (.gz), bzip (.bz), bzip2 (.bz2), dan kompres (.Z). Nama file "-" dapat digunakan untuk berarti "input standar", tetapi kemudian tipe mime harus ditentukan.

  3. echo

    Perintahnya echoadalah perintah builtin ke shell yang Anda gunakan bernama Bash (saya berasumsi Anda menggunakan Bash). Anda dapat mengkonfirmasi ini dengan menggunakan perintah ini:

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

    Anda akan melihat bahwa echoitu juga executable mandiri /bin/echo,. Ini adalah perintah yang berbeda dari yang echoAnda gunakan, tetapi melayani tujuan yang sama.

  4. print dalam kerang seperti zsh / ksh

    Berkat komentar @Gilles, printperintah yang Anda cari kemungkinan besar adalah perintah yang dibuat dalam shell seperti zshdan / atau ksh. Anda dapat melihat penggunaannya melalui halaman manual man zshbuiltins,.

    Contoh

    zsh % print "hello world"
    hello world
    

    Anda dapat menjalankan salah satu dari kerang ini dengan mengetik zshatau ksh.

printf

Mungkin Anda sedang mencari perintah 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

Perintah ini printfmengambil set pemformatan karakter khusus sehingga Anda dapat menginstruksikannya bagaimana Anda ingin menampilkan hal-hal seperti string atau digit dll. Lihat halaman manual untuk printf.

mailcap

Jadi banyak orang mungkin tidak menyadari file tersebut /etc/mailcap. File ini berisi tipe mime (header dari file yang mengidentifikasi jenis file file apa). Anda kemudian dapat membuat entri dalam mailcapfile ini yang menunjuk alat apa yang digunakan untuk membuka tipe mime tertentu untuk file.

Contoh

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"

Baris di atas mengatakan bahwa jika Anda mendapatkan file dengan tipe mime audio/mpeg, maka gunakan alat /usr/bin/mplayeruntuk membuka file ini.

Aturan-aturan ini umumnya digunakan oleh alat email, tetapi alat lain dapat memanfaatkan entri ini di dalam mailcapfile juga.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang tipe mime atau mailcap, lihat referensi berikut.

Referensi

slm
sumber
2
Terkadang saya pikir Anda tidak pernah tidur :-). +1, tidak dapat menjawab ini dengan lebih baik
iruvar
2
@PrayagUpd - terima kasih atas Q Anda. Percaya atau tidak, saya juga belajar sesuatu dengan masing-masing Q, jadi saya sangat menghargai mereka karena mereka mendorong saya untuk mempelajari berbagai hal dengan cara yang jauh lebih terperinci. 8-)
slm
1
@PrayagUpd - ya saya mencari IP Anda. Saya menggunakan road runner di sini di AS. Saya meng-host blog saya sendiri sehingga cenderung memblokir berdasarkan wilayah geografis IP? Saya bermaksud memindahkan blog saya ke sesuatu yang lebih mudah diakses.
slm
2
@PrayagUpd - sama-sama, terima kasih telah memberi tahu saya tentang blog saya. Jelas saya ingin itu dapat diakses sebagai mungkin, tidak ada gunanya menulis hal-hal jika ppl tidak bisa melihatnya.
slm
1
printjuga merupakan ksh (dan zsh) builtin, mirip dengan echotetapi tanpa kebiasaan sejarah. Itu mungkin asal usul mengapa penanya pertanyaan SO itu digunakan print.
Gilles 'SO- stop being evil'
0

Anda dapat menggunakan perintah printf untuk melakukannya,

 # printf Hello World
 Hello

 # printf "Hello World"
 Hello World

Nah, secara lengkap Anda perlu menggunakan print commnad maka Anda bisa menambahkan alias

 # alias print='echo'

 # print Hello World
 Hello World

 # unalias print  < -- to revert.

juga untuk mengatur permanen,

 # export print='echo'

 # print Hello Linux
 Hello Linux

begitu,

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

# unset print   < -- to revert.
# export | grep print
Ranjithkumar T
sumber