o que "ls '" significa no Linux?

13

Digitei acidentalmente ls'e recebi uma interface interativa: > O que é isso?

Eu tentei pesquisar na internet, não encontrei nada.

Anders Lind
fonte

Respostas:

34

Esse comportamento é agnóstico. Você abriu uma cotação, o shell está exibindo $PS2a variável global ( $PS2é a >saída) enquanto a segunda cotação está ausente.

Você pode alterar o PS2 com o que deseja:

Ex: export PS2=">>>"

O valor de $ PS2 é impresso (após a expansão) como o prompt secundário para mais dados quando o bash estiver em execução interativa. Veja man bash, em PROMPTING.

Gilles Quenot
fonte
2
Você tem bons olhos para identificar as aspas simples perdidas.
1
Informações adicionadas: para sair, basta inserir outra aspas simples ou pressionar ctrl-c.
Oct
Não exatamente lendo stdin; você pode inserir uma cotação de várias linhas em um script ou algo assim; mas o prompt secundário é exibido em uma sessão interativa quando você entra uma nova linha dentro de uma string, um loop inacabada, etc.
tripleee
1
Melhor utilização ctrl-d, em vez de ctrl-c como EOF (End Of Arquivo)
Gilles Quenot
obrigado, BTW o que significa PS2?
Anders Lind
5
-bash-4.1$ ls'
>

significa que você abre uma sequência longa com 'e não a fechou, então o bash aguarda a sequência (argumento) terminar com'

Use lssem 'no final.

Mateusz
fonte
0

"PS" significa (provavelmente) "string de prompt". PS1 é o que o shell exibirá como prompt de linha de comando do processo do shell. O PS2 é exibido quando mais entradas são necessárias para concluir o comando (sequência não citada, leitura de stdin, etc.). man bashdepois pesquise PS1 ou PS2 ( /PS[12]<CR>)

aqn
fonte