Lebih
Apa tujuan dari cd ` (backtick)?
Berikut berperilaku sama di Fedora dan CentOS.
cd mydirectory
karya-karya.
cd notadirectory
bekerja (mendapat kesalahan dari Bash).
Namun,
cd `
memberi saya semacam prompt:
>
Tidak ada I've berpikir untuk memasukkan memberikan respon apapun, hanya kepala ke baris berikutnya untuk konfirmasi lagi. Saya hanya menggunakan PILIH+C untuk keluar kembali ke saya root@localhost
.
Apa tujuan dari ini dan apa yang bisa dilakukan dengan itu?
Terima kasih!!!
56
4
Apa yang anda've diketik adalah backtick - itu adalah awal dari sebuah instruksi untuk bash untuk mengevaluasi apa yang anda ketik sebagai perintah. The
>
ditampilkan untuk menunjukkan anda masih memasukkan perintah pada baris berikutnya.Jika anda menutup backtick anda'll menemukan seluruh perintah akan dijalankan. E. g.
JohnC's jawaban sudah menjelaskan backtick. Tapi apa anda juga bertanya-tanya tentang
>
prompt. Ini kelanjutan prompt, dan itu tidak hanya dipicu oleh backtick, tapi always ketika shell anda jelas tahu anda're tidak selesai memasukkan perintah. Contoh yang paling mudah adalah menempatkan eksplisit baris kelanjutan\
pada akhir baris input (yang membantu membelah lama input):Perhatikan bahwa hanya seperti
PS1
kontrol command prompt's terlihat, anda juga dapat mengaturPS2
untuk mengubah kelanjutan prompt, misalnyaAda banyak alasan untuk kelanjutan terjadi. Satu backtick tidak lengkap, tapi anda bisa juga memasukkan sesuatu seperti
dalam satu garis (sisi-catatan:'s dianjurkan untuk menggunakan
$(
dan)
sebaliknya, sejak kurung membuatnya jelas di mana ekspansi dimulai dan berakhir, sementara satu backticks membuat lebih sulit untuk melihat di mana satu's hilang. Dan bersarang...). Alasan lain yang mungkin untuk kelanjutan prompt:selesai
setelahsementara
atauuntuk
fi
setelahjika
esac
setelahkasus
(cd $HOME; kucing .bashrc)
|
serta bersyarat eksekusi||
dan&&
(bukan&
meskipun, karena itu's hanya membuat perintah yang berjalan di latar belakang)'
atau"
)Anehnya, hilang brace
}
setelah ekspansi variabel${
juga menyebabkan kelanjutan prompt, tapi akan gagal karena dimasukkan ruang:Ini berarti bahwa perintah anda belum lengkap. Pada kenyataannya, karakter backtick,
`
, digunakan untuk membatasi sebaris perintah.Contoh:
Yang backtick dimulai/berakhir perintah substitusi. Shell membaca perintah di dalam backticks, menafsirkan hasil, dan menempatkan mereka ke dalam hasil perintah. E. g:. ls
yang cp
hasil yang di "yang cp" yang sedang dijalankan dan hasil dari perintah itu, aku.e, /bin/cp akan digunakan sebagai argumen untuk perintah ls. Perilaku ini, namun, usang, mendukung lebih jelas dan dapat dibaca $(cmd) command substitusi.Ketika mengetik cd ` shell mengharapkan perintah yang harus dijalankan untuk mengikuti, dan, untuk menjadi dekat dengan backtick.
Dalam kasus variabel ekspansi menggunakan kawat gigi shell menyajikan kelanjutan prompt karena mereka kawat gigi leksikal dievaluasi sebelum pemekaran dilakukan.