GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mengakses Argumen Terakhir Dari Perintah yang Dikomentari?

Saya menemukan . (alt . untuk banyak lainnya) menjadi sangat berguna ketika bekerja di terminal, memasukkan argumen terakhir dari baris terakhir pada prompt saat ini. Namun, itu tidak berfungsi ketika baris terakhir dikomentari (dengan asumsi set -o interactivecomments ).

Saya tidak dapat memikirkan kasus penggunaan yang tepat, tetapi telah terjadi beberapa kali bahwa saya telah mengomentari perintah yang saya sadari sebelum eksekusi tidak menjadi yang saya butuhkan pada saat itu, dan kemudian menginginkan argumen terakhirnya dalam a perintah selanjutnya.

Saya menyadari bahwa ada logika untuk mengabaikan semua yang dikomentari, karena tidak pernah ditafsirkan dan oleh karena itu tidak ada yang dijadikan argumen, tetapi apakah ada cara untuk melakukan apa yang saya inginkan?

Itu tidak akan ideal—tetapi akan dapat digunakan—jika saya harus menggunakan penekanan tombol yang berbeda, terikat pada perintah alternatif yang akan melakukan apa yang saya inginkan.

Saya menggunakan Zsh, tetapi solusi Bash mungkin berfungsi atau mendekati apa yang perlu saya lakukan di Zsh.

Jawaban yang Diterima:

Jangan komentari perintahnya.

Sebagai gantinya, masukkan : di depan bukan # . Itu akan membuat argumen teks perintah Anda ke utilitas null : , yang tidak melakukan apa pun saat dijalankan. Argumen tersebut di-token dan diuraikan, karena ini masih berupa perintah, tetapi tidak ada hal lain yang dilakukan dengan argumen tersebut.

Ada kasus di mana ini tidak cocok:khususnya, ketika mencari tahu perintah itu sendiri memiliki efek samping. Contoh sederhana adalah substitusi perintah:

$ : log $(find -print -delete) --target /var/run/cache

Dalam hal ini, perintah di dalam $(...) akan dijalankan dan diganti ke dalam argumen ke : , meskipun perintah asli itu sendiri tidak akan pernah berjalan. Kasus yang tidak terlalu merusak adalah ${foo:=default} ekspansi parameter, yang memiliki efek samping menetapkan nilai ke $foo .

Terakhir, pengalihan atau pipa akan tetap dilakukan:

$ : foo > outfile
$ : bar | grep x | ...

dalam kedua kasus akan mengirim output kosong ke tujuan, yang akan memotong atau membuat file atau menjalankan perintah berikutnya, yang mungkin tidak menyukai input kosong yang mereka dapatkan.

Jika Anda tidak memiliki masalah khusus apa pun untuk perintah Anda, ini sepenuhnya aman dan berfungsi di zsh, Bash, dan shell yang kompatibel dengan POSIX (meskipun perilaku alt-. sesudahnya tidak akan berfungsi di mana-mana).

Jika itu adalah kata terakhir yang Anda inginkan, zsh menyediakan binding kunci dan perintah yang dapat disesuaikan yang dapat Anda gunakan untuk memanipulasi baris perintah. Jika Anda bindkey '^K' kill-region kemudian Anda dapat kembali ke sebelum kata, CtrlK untuk menghapus ke awal baris, : , lalu dapatkan perintah yang aman hanya dengan satu kata yang Anda pedulikan.

Terkait:Debian – Bagaimana cara menginstal beberapa paket dari Debian “tidak stabil” di komputer yang menjalankan Debian “stabil”?
Linux
  1. Bagaimana perintah oc debug bekerja di OpenShift

  2. $_ Vs !$. Argumen Terakhir Dari Perintah Sebelumnya Dan Pengalihan Output?

  3. Bagaimana Cara Kerja Perintah Tee??

  1. Bagaimana saya bisa mengingat argumen dari perintah bash sebelumnya?

  2. Bagaimana cara mengakses Soket Domain Unix dari baris perintah?

  3. Bagaimana cara mencetak baris terakhir dari file terkompresi gz di baris perintah?

  1. Cara menggunakan perintah grep Linux

  2. Cara menggunakan perintah history di Linux

  3. Bagaimana cara menggunakan perintah nama dasar?