Banyak kali saya telah menjalankan perintah dengan semua huruf dalam huruf besar (mungkin karena CapsLockaktif), dan saya menekan Entersebelum menyadari ini.
Bagaimana saya bisa menjalankan perintah terakhir dengan semua huruf diubah menjadi huruf kecil?
command-line
bash
history
Radu Rădeanu
sumber
sumber
!!:l
.Jawaban:
Anda dapat mencapainya dengan menambahkan fungsi kecil berikut (saya menyebutnya
??
sangat sederhana, tetapi Anda dapat mengubahnya sesuai keinginan) di.bashrc
file Anda :Selanjutnya, ketika Anda akan menjalankan:
perintah terakhir akan dijalankan dengan semua huruf menjadi huruf kecil.
Penjelasan
!!
: ini adalah bagian dari alat sejarah bash, khususnya, ia mengembang ke menjalankan perintah terakhir . Jadi, misalnya,echo !!
akan mencetak perintah terakhir yang dijalankan dalam sesi shell khusus ini."${@,,}
: Konstruk${foo,,}
akan mengonversi konten variabel yang$foo
dikonversi ke semua huruf kecil.$@
adalah array dari parameter posisi. Ketika digunakan di dalam suatu fungsi, itu diperluas ke parameter yang diteruskan ke fungsi itu.Jadi,
"${@,,}"
hanya akan mengubah apa pun yang dilewatkan ke fungsi menjadi huruf kecil dan kemudian jalankan. Oleh karena itu, menjalankan??
fungsi dengan!!
sebagai parameter akan mengubah perintah terakhir menjadi huruf kecil dan menjalankannya.sumber
"!!"
.??
mengubah huruf argumennya menjadi huruf kecil dan!!
menulis ulang secara otomatis perintah sebelumnya dalam perintah saat ini (jadi??
ambil sebagai argumen perintah sebelumnya).Kuncinya ada di
`
kutipan (backticks) - yang menjalankan output sebagai perintah.sumber
tr
akan menjadi pilihan pertama saya juga. Juga berfungsi (alternatif untuk backticks dan tanpa kelas-bracket POSIX):$( echo !! | tr '[A-Z]' '[a-z]')
inilah jawaban programmer .... gunakan python:
Atau Ruby:
Atau Perl (mungkin favorit saya):
Atau PHP:
Atau Awk:
Atau Sed:
Atau Bash:
Atau zsh
Atau NodeJS jika Anda memilikinya:
Anda juga bisa menggunakannya
dd
(tapi saya tidak mau!):Anda juga dapat membuat skrip kecil untuk melakukan pekerjaan:
Yang Anda gunakan seperti ini:
sumber
Dan yang satu dengan
sed
,Contoh:
Keluaran:
sumber