Di Terminal saya bisa menggunakan !!
yang akan merujuk perintah saya sebelumnya.
Apakah mungkin menggunakan ini dalam alias? Saya sudah mencobanya, tetapi yang terjadi adalah tanda seru ganda ditafsirkan secara harfiah.
Yang saya inginkan adalah:
- Saya memasukkan beberapa perintah
- Saya mengetikkan alias yang akan memasukkan apa yang dimasukkan pada langkah 1
Jika ada solusi menggunakan skrip yang juga dapat diterima.
command-line
bash
alias
Ludwig Magnusson
sumber
sumber
fc
perintah sehingga membuka editor teks, karena itu adalah cara termudah untuk mengedit perintah panjang. Izinkan saya menambahkannya ke posting saya. Juga, mungkin Anda bisa memberikan contoh perintah?Jawaban:
Perintah yang mencantumkan perintah yang terakhir dieksekusi adalah
fc -nl -1
. Dengan menggunakan substitusi keluaran, kita dapat menambahkan lebih banyak parameter ke konten yang samaMengutip, bagaimanapun, mungkin menjadi masalah dengan pendekatan ini
Fitur yang sangat bagus
fc
adalah bahwa jika Anda hanya menjalankanfc
perintah dengan sendirinya, itu akan membuka editor teks yang ditentukan dalamFCEDIT
variabel (yang Anda mungkin ingin disimpan dalam~/.bashrc
) dan isi baris akan menjadi perintah terakhir Anda. Untuk memudahkan Anda, saya sarankan Anda gunakannano
sebagai editor teks Anda, tetapi jika Anda tahuvim
- bahkan lebih baik.Misalnya, bagaimana jika saya perlu mengedit
qdbus org.ayatana.bamf /org/ayatana/bamf/matcher org.ayatana.bamf.matcher.ActiveWindow
garis Huge, kan? Tetapi denganfc
, saya dapat membukavim
dan mengedit/org/ayatana/bamf/matcher
, menyimpan, keluar dan itu akan berjalan.sumber
Anda tidak dapat menggunakan
!!
tetapi ...Dari manual :
sumber
Jika Anda bersikeras menggunakan
!!
sintaks ekspansi sejarah alih-alihfc
(sudah disebutkan), ada caranya.Secara default,
history
ekspansi dinonaktifkan untuk sesi shell non-interaktif misalnya dalam skrip.Untuk mengaktifkan ekspansi riwayat dalam skrip, aktifkan opsi shell yang relevan terlebih dahulu:
set -o histexpand
dapat ditulisset -H
juga.Sekarang operasi ekspansi sejarah mis
!!
akan bekerja di dalam skrip.sumber