Apa yang dilakukan '(kutipan tunggal) di terminal?

8

Jika saya mengetikkan '(kutipan tunggal, di sebelah <enter>tombol) di terminal dan kemudian tekan enter, turun ke >prompt. Apa sebenarnya ini, untuk apa ia digunakan, dan jenis perintah apa yang bisa saya masukkan di sini?

Saya bisa <Ctrl-C>keluar dari itu, tetapi hanya itu yang saya dapat.

Insperatus
sumber

Jawaban:

6

Terminal tidak hanya menerima kode satu baris. Sebenarnya, Anda dapat menulis kode (karena bash scripting adalah bahasa pemrograman) dalam banyak baris.

Misalnya, jika Anda menulis:

while true; do <enter>

itu akan menunjukkan persis sama dengan >yang ditunjukkan untuk kasus Anda, juga. Ini memungkinkan Anda memasukkan lebih banyak perintah. Sekarang, jika Anda mengetik:

echo "Cake is a lie" <enter>
sleep 1              <enter>
done                 <enter>

itu akan mulai menjalankan kode Anda (yang, dalam kesempatan ini hanya loop sementara yang akan menampilkan string setiap 1 detik). Ini memungkinkan Anda membuat program kecil tanpa harus menuliskannya dalam kode satu baris, seperti ini:

while true; do echo "Cake is a lie"; sleep 1; done

yang, dalam hal ini bukan masalah seperti itu, tetapi bisa saja, dalam kesempatan lain (dengan lebih banyak kode untuk ditulis).

Jadi, umumnya digunakan untuk menulis beberapa baris kode. Dalam kesempatan Anda, shell mengakui bahwa Anda tidak memiliki angka genap 'di dalam kode Anda, dan ini tidak dapat berfungsi dalam hal apa pun (hal yang sama berlaku untuk "). Jadi, mari kita menulis lebih banyak kode untuk menyelesaikan apa yang tersisa.

Misalnya, jika Anda memberi sebagai perintah:

echo "Cake is a <enter>

maka itu akan membiarkan Anda melanjutkan. Dan memang, Anda bisa:

lie"            <enter>

Biasanya akan menghasilkan:

Cake is a
lie
hytromo
sumber
Begitu, jadi alih-alih memberi saya pesan kesalahan, itu memberi saya kesempatan untuk menyelesaikan perintah dengan cerdas. Apakah ada nama untuk "mode" ini?
Insperatus
2
Saya tidak berpikir bahwa itu memiliki nama khusus, itu biasanya disebut sebagai 'prompt sekunder'
hytromo