Perl -e insere nova linha [duplicada]

0

Oi

Se eu fizer isso no bash

perl -e '$x; $y'

Existe algum personagem que possa se comportar como uma nova linha?

i.e. Eu quero fazer

perl -e '$x; some_chars_as_new_line $y'

em que some_chars_as_new_line pode ser \, não meta-caráter.

onde o interpretador perl realmente vê uma nova linha real.

$x; 
$y;

Muito obrigado

    
por portoalet 25.03.2010 / 05:12

1 resposta

-1

A pergunta que você fez apenas diz respeito a como o shell interpreta sua entrada e a transmite a outros programas. Não tem nada a ver com o Perl, por si.

Você deve conseguir colocar isso em um script:

foo '$x;
$y;'

O argumento dado ao comando terá uma nova linha no mesmo local que no próprio script. Talvez seja necessário tomar cuidado para salvar esse script de modo que ele termine com quebras de linha no estilo Unix (somente LF), caso contrário, você poderá obter um CR + LF (quebras de linha do DOS / Windows) ou somente CR (antigo Racks de lineba estilo Mac). Você também pode fazer isso em um prompt interativo, mas verá um prompt de continuação antes da segunda e de todas as linhas subsequentes:

$ foo '$x;
> $y;'

Em bash , você também pode usar o $'' citando a sintaxe para codificar um caractere de nova linha como este:

foo $'$x;\n$y;'

O argumento transmitido ao programa será tratado de maneira semelhante a uma cadeia ANSI C. Se você quiser uma barra invertida real na string, você terá que escapar como \ .

Então, se você realmente quer que as citações de texto literal que as aspas simples dão a você, você provavelmente deve ficar com uma nova linha embutida para que você não tenha que se preocupar com escape extra.

    
por 25.03.2010 / 05:47