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!!!

Mengomentari pertanyaan (2)
Larutan

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.

~$ cd `
> echo /var`
/var$
Komentar (3)

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):

$ echo \
> hallo

Perhatikan bahwa hanya seperti PS1 kontrol command prompt's terlihat, anda juga dapat mengatur PS2 untuk mengubah kelanjutan prompt, misalnya

$ export PS2="(cont.) "
$ echo \
(cont.) hallo

Ada banyak alasan untuk kelanjutan terjadi. Satu backtick tidak lengkap, tapi anda bisa juga memasukkan sesuatu seperti

ls -l `which cp`

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:

  • hilang selesai setelah sementara atau untuk
  • hilang fi setelah jika
  • hilang esac setelah kasus
  • hilang penutupan kurung, misalnya di subshells (cd $HOME; kucing .bashrc)
  • hilang perintah setelah pipa | serta bersyarat eksekusi || dan && (bukan & meskipun, karena itu's hanya membuat perintah yang berjalan di latar belakang)
  • hilang penutupan quote (' atau ")

Anehnya, hilang brace } setelah ekspansi variabel ${ juga menyebabkan kelanjutan prompt, tapi akan gagal karena dimasukkan ruang:

$ echo ${
> PS2}
bash: ${
PS2}: bad substitution
Komentar (2)

Ini berarti bahwa perintah anda belum lengkap. Pada kenyataannya, karakter backtick, `, digunakan untuk membatasi sebaris perintah.

Contoh:

cd /tmp # Go to /tmp
pwd # Prints the current working  directory
ls `pwd` # Lists the content of the current working directory
Komentar (0)

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.

Komentar (0)