apa arti "ls '" di Linux?

13

Saya tidak sengaja mengetik ls'dan saya mendapat antarmuka interaktif: > Apa ini?

Saya mencoba mencari di internet, tidak menemukan apa pun.

Anders Lind
sumber

Jawaban:

34

Perilaku ini distro agnostik. Anda telah membuka penawaran, shell menampilkan $PS2variabel global ( $PS2ada >di output Anda) sementara kutipan kedua hilang.

Anda dapat mengubah PS2 dengan apa yang Anda inginkan:

Ex: export PS2=">>>"

Nilai $ PS2 dicetak (setelah ekspansi) sebagai prompt sekunder untuk lebih banyak data saat bash berjalan interaktif. Lihat man bash, di bawah PROMPTING.

Gilles Quenot
sumber
2
Anda memiliki mata yang bagus untuk melihat kutipan tunggal yang menyimpang.
1
Info tambahan: Untuk keluar, cukup masukkan satu kutipan lagi, atau tekan ctrl-c.
octern
Tidak persis membaca stdin; Anda dapat memasukkan kutipan multi-baris dalam naskah atau sesuatu juga; tetapi prompt sekunder ditampilkan dalam sesi interaktif ketika Anda memasukkan baris baru di dalam string yang dikutip, loop yang belum selesai, dll.
tripleee
1
Lebih baik gunakan ctrl-d daripada ctrl-c sebagai EOF (End Of File)
Gilles Quenot
terima kasih, BTW untuk apa PS2 berdiri?
Anders Lind
5
-bash-4.1$ ls'
>

itu berarti Anda membuka string panjang dengan 'dan tidak menutup sehingga bash sedang menunggu string (argumen) berakhir dengan'

Gunakan lstanpa 'di akhir.

Mateusz
sumber
0

"PS" adalah singkatan dari (mungkin) "string cepat". PS1 adalah apa yang shell akan ditampilkan sebagai command line prompt shell Anda. PS2 ditampilkan ketika input lebih lanjut diperlukan untuk menyelesaikan perintah (string yang tidak dikutip, membaca dari stdin, dll.). man bashlalu cari PS1 atau PS2 ( /PS[12]<CR>)

aqn
sumber