Cara Menggunakan Perintah yes pada Linux

Fatmawati Achmad Zaenuri/Shutterstock.com



Perintah ya nampaknya terlalu mudah untuk digunakan secara praktikal, tetapi dalam tutorial ini, kami akan menunjukkan kepada anda aplikasinya dan cara mendapat manfaat daripada kepositifannya yang terpendam dalam Linux dan macOS.

Perintah ya

|_+_| arahan adalah salah satu arahan paling mudah dalam Linux dan lain-lain Sistem pengendalian seperti Unix seperti macOS. Dan dengan mudah, kami maksudkan mudah dalam penggunaannya dan pelaksanaan awalnya. Kod sumber untuk versi asal—dikeluarkan dalam Sistem 7 Unix dan dikarang oleh Ken Thompson -berjumlah hanya enam baris kod .





Tetapi jangan hapuskannya kerana menjadi arahan kecil yang mudah. Ia boleh digunakan dalam beberapa cara yang menarik dan berguna.

Apa Yang Ya Lakukan?

Digunakan tanpa sebarang parameter baris arahan, |_+_| arahan berkelakuan seolah-olah anda sedang menaip y dan menekan Enter, berulang kali (dan berulang kali) lagi. Sangat cepat. Dan ia akan terus berbuat demikian sehingga anda menekan Ctrl+C untuk mengganggunya.



yes

Malah, |__+_| boleh digunakan untuk menjana berulang kali sebarang mesej yang anda pilih. Hanya taip |_+_|, ruang, rentetan yang anda ingin gunakan, dan kemudian tekan Enter. Ini sering digunakan untuk menyebabkan |__+_| untuk menjana aliran keluaran rentetan ya atau tidak.

yes



yes

Tetapi Apa Kegunaan Itu?

Output daripada |__+_| boleh disalurkan ke dalam program atau skrip lain.

Iklan

Adakah ini terdengar biasa? Anda memulakan proses yang panjang berjalan dan melangkah pergi, meninggalkannya untuk berjalan. Apabila anda kembali ke komputer anda, proses itu belum selesai sama sekali. Jika anda tidak hadir, ia telah bertanyakan soalan kepada anda dan menunggu jawapan ya atau tidak.

Jika anda tahu terlebih dahulu bahawa semua jawapan anda akan menjadi positif (ya atau y) atau negatif (tidak atau n) anda boleh menggunakan |_+_| untuk memberikan jawapan tersebut untuk anda. Proses panjang anda kemudiannya akan berjalan hingga selesai tanpa pengawasan dengan |_+_| memberikan jawapan kepada sebarang soalan yang ditanya oleh proses itu.

Menggunakan ya Dengan Skrip

Lihat skrip shell Bash berikut. (Kita perlu membayangkan bahawa ini adalah sebahagian daripada skrip yang lebih besar yang akan mengambil masa yang agak lama untuk dijalankan.)

yes

Skrip ini bertanyakan soalan dan menunggu jawapan. Aliran logik dalam skrip ditentukan oleh input daripada pengguna.

  • Ya atau y menunjukkan tindak balas yang positif.
  • Sebarang input lain dianggap sebagai tindak balas negatif.
  • Menekan Enter tanpa teks input tidak melakukan apa-apa.

Untuk menguji ini, salin skrip ke fail dan simpan sebagai |__+_|. Gunakan |_+_| untuk menjadikannya boleh dilaksanakan.

yesIklan

Jalankan skrip dengan arahan berikut. Cuba berikan ya, y dan apa-apa lagi sebagai input, termasuk menekan Enter tanpa teks input.

yes

Untuk mendapatkan |_+_| untuk memberikan respons kami kepada soalan skrip, paipkan output daripada |_+_| kepada skrip.

yes

Sesetengah skrip lebih tegar dalam keperluannya dan hanya menerima perkataan penuh ya sebagai respons positif. Anda boleh memberikan ya sebagai parameter kepada |_+_|, seperti berikut:

yes

Jangan Kata Ya Tanpa Memikirkannya

Anda perlu yakin bahawa input yang akan anda masukkan ke dalam skrip atau program pasti akan memberikan hasil yang anda harapkan. Untuk dapat membuat keputusan itu, anda mesti mengetahui soalan dan jawapan anda sepatutnya.

Logik dalam skrip, arahan atau program mungkin tidak sepadan dengan jangkaan anda. Dalam skrip contoh kami, soalannya mungkin Adakah anda ingin berhenti? [y,n]. Jika itu berlaku, respons negatif akan membolehkan skrip diteruskan.

awak mesti biasakan diri dengan skrip, arahan atau atur cara sebelum anda menyalurkan |_+_| ke dalamnya.

Menggunakan ya Dengan Perintah

Pada peringkat awalnya, |_+_| akan digunakan dengan arahan Linux yang lain. Sejak itu, kebanyakan arahan Linux yang lain mempunyai cara mereka sendiri berjalan tanpa interaksi manusia. |_+_| tidak lagi diperlukan untuk mencapai itu.

Iklan

Mari ambil pengurus pakej Ubuntu |_+_| sebagai contoh. Untuk memasang aplikasi tanpa perlu menekan y separuh jalan melalui pemasangan, |_+_| akan digunakan seperti berikut:

long_script.sh

Keputusan yang sama boleh dicapai menggunakan |_+_| (anggap ya) pilihan dalam |_+_|:

chmod

Anda akan melihatnya |__+_| didn’t even ask its usual Adakah anda mahu teruskan? [Y/n] soalan. Ia hanya menganggap jawapannya adalah ya.

Pada pengedaran Linux yang lain, keadaannya adalah sama. Pada Fedora anda akan menggunakan jenis arahan pengurus pakej ini pada satu masa:

yes

|_+_| pengurus pakej telah menggantikan |__+_| dan |_+_| mempunyai |__+_| sendiri (anggap ya) pilihan.

yesIklan

Perkara yang sama berlaku untuk |__+_|, |_+_| dan |_+_|. Perintah ini setiap satu mempunyai |__+_| mereka sendiri (paksaan) atau |__+_| (andaikan ya) pilihan.

Begitu juga nampaknya |__+_| telah diturunkan kepada hanya bekerja dengan skrip? Tidak cukup. Terdapat beberapa helah lagi dalam anjing tua itu.

Beberapa Trik Lanjut ya

Anda boleh menggunakan |__+_| dengan urutan digit yang dijana oleh |__+_| untuk mengawal gelung tindakan berulang.

Satu pelapik ini menggemakan digit yang dijana ke tetingkap terminal dan kemudian memanggil |_+_| untuk satu saat.

Daripada hanya menggemakan digit ke tetingkap terminal, anda boleh memanggil arahan atau skrip lain. Perintah atau skrip itu tidak perlu menggunakan digit, dan ia hanya ada untuk memulakan setiap kitaran gelung.

yes

ya satu pelapik mengawal gelung dalam tetingkap terminal

Kadangkala ia berguna untuk mempunyai fail besar untuk diuji. Mungkin anda ingin berlatih menggunakan arahan zip , atau anda ingin mempunyai fail yang bersaiz besar untuk diuji Muat naik FTP dengan.

Iklan

Anda boleh menjana fail besar dengan pantas dengan |__+_|. Apa yang anda perlu lakukan ialah memberikan rentetan teks yang panjang untuk digunakan dan mengalihkan output ke dalam fail. Jangan lakukan kesilapan; fail tersebut akan berkembang dengan pesat. Bersedia untuk menekan Ctrl+C dalam beberapa saat.

yes yes yes

menjana fail ujian dengan yes i tetingkap terminal

Fail yang dijana di sini mengambil masa kira-kira lima saat pada mesin ujian yang digunakan untuk menyelidik artikel ini. |_+_| melaporkan bahawa ia bersaiz 557 Mb dan |_+_| beritahu kami terdapat 12.4 juta baris di dalamnya.

Kita boleh mengehadkan saiz fail dengan memasukkan |__+_| dalam rentetan arahan kami. Kami memberitahunya berapa banyak baris untuk dimasukkan ke dalam fail. |_+_| bermaksud |_+_| akan membiarkan hanya 50 baris melalui |__+_| fail.

apt-get

menggunakan kepala untuk mengehadkan saiz fail i tetingkap terminal

Sebaik sahaja terdapat 50 baris dalam |__+_| fail, proses akan berhenti. Anda tidak perlu menggunakan Ctrl+C. Ia terhenti dengan anggun atas kehendaknya sendiri.

|_+_| melaporkan bahawa terdapat tepat 50 baris dalam fail, 400 perkataan dan bersaiz 2350 bait.


Walaupun ia masih berguna untuk menyuap respons ke dalam skrip jangka panjang (dan beberapa helah lain), |_+_| arahan tidak akan menjadi sebahagian daripada kit alat harian anda. Tetapi apabila anda memerlukannya, anda akan mendapati ia adalah kesederhanaan itu sendiri-dan semuanya dalam enam baris kod emas.

Perintah Linux
Fail tar · pv · kucing · tac · chmod · cengkaman · perbezaan · sed · Dengan · lelaki · pushd · popd · fsck · testdisk · seq · fd · pandoc · CD · $PATH · awk · sertai · jq · lipat · uniq · journalctl · ekor · negeri · ls · fstab · dibuang · kurang · chgrp · chown · rev · tengok · rentetan · taip · menamakan semula · zip · buka zip · lekapkan · umount · pasang · fdisk · mkfs · rm · rmdir · rsync · df · gpg · kita · nano · mkdir · daripada · ln · tampalan · menukar · rclone · carik-carik · SRM
Proses alias · skrin · atas · bagus · renice · kemajuan · jejak · sistem · tmux · chsh · sejarah · di · kumpulan · percuma · yang · dmesg · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · masa tamat · dinding · ya · bunuh · tidur · sudo · miliknya · masa · tambah kumpulan · usermod · kumpulan · lshw · menutup · but semula · berhenti · matikan · passwd · lscpu · crontab · Tarikh · bg · fg
Rangkaian netstat · ping · traceroute · ip · ss · siapakah · fail2ban · bmon · awak · jari · nmap · ftp · keriting · wget · who · siapakah saya · Dalam · iptables · ssh-keygen · ufw

BERKAITAN: Komputer Riba Linux Terbaik untuk Pembangun dan Penggemar

BACA SETERUSNYA Foto Profil untuk Dave McKay Dave McKay
Dave McKay pertama kali menggunakan komputer apabila pita kertas yang ditebuk sedang popular, dan dia telah memprogramkan sejak itu. Selepas lebih 30 tahun dalam industri IT, beliau kini seorang wartawan teknologi sepenuh masa. Semasa kerjayanya, beliau telah bekerja sebagai pengaturcara bebas, pengurus pasukan pembangunan perisian antarabangsa, pengurus projek perkhidmatan IT, dan, yang terbaru, sebagai Pegawai Perlindungan Data. Tulisannya telah diterbitkan oleh howtogeek.com, cloudsavvyit.com, itenterpriser.com, dan opensource.com. Dave ialah seorang penginjil Linux dan penyokong sumber terbuka.
Baca Bio Penuh

Artikel Yang Menarik