Saya mengikuti tutorial dan menyebutkan untuk menjalankan perintah ini:
sudo chmod 700 !$
Saya tidak kenal !$
. Apa artinya?
bash
command-history
Andrew
sumber
sumber
echo
sesuatu jika Anda tidak yakin apa yang akan dilakukan.echo $(rm -rf /)
--no-preserve-root
opsi di sana, dan jika Anda melihat kata-kata "tidak ada pelestarian" dalam suatu program, Anda sebaiknya berpikir dengan hati-hati tentang apa yang dilakukannya.Jawaban:
Pada dasarnya, ini adalah argumen terakhir dari perintah sebelumnya.
( sumber ; panduan praktis, omong-omong)
Tidak ada bedanya dengan perbedaan antara
!$
token ini dan variabel shell khusus$_
. Memang, keduanya memperluas argumen terakhir dari perintah sebelumnya. Namun,!$
diperluas selama ekspansi riwayat , sementara$_
diperluas selama ekspansi parameter . Salah satu konsekuensi penting dari ini adalah bahwa, ketika Anda menggunakan!$
, perintah yang diperluas disimpan dalam riwayat Anda.Misalnya, perhatikan penekanan tombol
echo Foo
Enterecho !$ Jar
Enter Up Enter; danecho Foo
Enterecho $_ Jar
Enter Up Enter.(Satu-satunya karakter yang diubah adalah
$!
dan$_
di tengah.)Di yang pertama, ketika Anda menekan Up, baris perintah berbunyi
echo Foo Jar
, jadi baris terakhir yang ditulis untuk stdout adalahFoo Jar
.Pada yang terakhir, ketika Anda menekan Up, baris perintah berbunyi
echo $_ bar
, tetapi sekarang$_
memiliki nilai yang berbeda dari yang sebelumnya — memang,$_
sekarangJar
, jadi baris terakhir yang ditulis ke stdout adalahJar Jar
.Konsekuensi lain adalah bahwa
_
dapat digunakan dalam ekspansi parameter lain, misalnya, urutan perintahcetakan
isomorphism isosceles
. Tetapi tidak ada${!$%morphism}
ekspansi " " analog .Untuk informasi lebih lanjut tentang fase ekspansi di Bash, lihat
EXPANSION
bagianman 1 bash
(ini disebut Shell Expansions dalam edisi online). TheHISTORY EXPANSION
bagian terpisah.sumber
!$
insert-last-argument
, biasanya terikatM-.
.Sesungguhnya
!$
, kata terakhir dari perintah terakhir dari daftar sejarah adalah kata terakhir.Contoh:
sumber
!$
akan memberi Anda perintah terakhir yang digunakan untuk pengguna tertentu ....Anda juga dapat menemukan riwayat perintah yang digunakan sebelumnya dengan menggunakan
history
perintah ... coba saja ....CATATAN: Untuk pengguna tertentu, semua perintah yang digunakan sebelumnya akan disimpan dalam file bash history.
sumber