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!!!
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$
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:
selesai
setelah sementara
atau untuk
fi
setelah jika
esac
setelah kasus
(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:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution
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
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 `
Dalam kasus variabel ekspansi menggunakan kawat gigi shell menyajikan kelanjutan prompt karena mereka kawat gigi leksikal dievaluasi sebelum pemekaran dilakukan.