O que é o modo shell iniciado com o apóstrofo?

2

Em uma sessão de terminal (SSH), qual é o objetivo do modo iniciado pela seqüência de teclas apostrophe <ENTER> ou mais literalmente '<ENTER> .

Qual é o caminho para sair desse modo?

    
por H2ONaCl 20.05.2012 / 11:23

1 resposta

5

Digitar ' enter não inicia nenhum modo SSH especial. Os comandos (normais) que você digita são interpretados pelo shell na outra extremidade da sua conexão SSH, não pelo próprio SSH.

' é normalmente chamado de aspas simples na terminologia do shell, " uma aspa dupla e ' é um backtick.

' inicia uma sequência de caracteres que não é interpretada pelo shell. Isso é útil, por exemplo, se você precisar passar e argumentar para um programa, o deve conter $ ou outra seqüência de caracteres que, de outro modo, seria interpretada pelo shell ou que contém novas linhas. Você termina essa sequência com outro '.

" é semelhante, mas ocorre alguma interpolação (isto é, as variáveis são expandidas).

' é diferente. Isso é para substituição de comando. Se você digitar

echo 'foo'

a saída de executar o programa foo é substituída antes de executar o comando echo . Outra maneira de fazer isso é usando $(...) :

echo $(foo)

Então, se você digitar ' enter , você está apenas começando uma string literal de múltiplas linhas. Você finaliza isto com um ' ou com Ctrl C , se quiser sair.

$ echo 'hello
> this
> is 
> a
> multiline
> string
> '
hello
this
is
a
multiline
string
$ echo 'foo $PWD'
foo $PWD               # no interpolation
$ echo "foo $PWD"
foo /tmp               # interpolation

Começar uma linha com ' não é realmente útil por si só.

    
por 20.05.2012 / 11:41

Tags