Como parar a interpolação da casca?

1

Estou escrevendo um pouco de Ruby para usar na linha de comando, mas o shell está interferindo demais - existe uma maneira de desativar a interpolação para toda a linha? Eu sei que posso escapar de certos personagens, mas estou procurando uma proibição geral.

Por exemplo, eu tenho o conjunto de shell para não adicionar ao histórico se ele começa com um espaço em branco.

Qualquer ajuda com isso é muito apreciada.

Eu não acho que fiquei claro, minhas desculpas. Um exemplo:

ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")'

O shell não interpola esses números porque ele está entre aspas simples, mas às vezes o código precisará incluir aspas. Ruby é bastante útil nisso, você pode usar outros caracteres especiais para mudar as aspas, mas então tudo começa a ficar um pouco bagunçado, e não será tão simples como acima. O que eu gostaria é algo mais como:

%% ruby -pi -e 'gsub(/(find)(this)/, "#{$1} #{$2}")'

Onde %% mudaria de interpolação pelo shell para o resto da linha.

    
por Iain 15.08.2012 / 13:40

2 respostas

1

Que tal usar uma função que irá ler a partir de um prompt e, em seguida, executar literalmente o que você digita?

function f { read -p"> " c; $c; }

Em uso, será parecido com:

$ f
> echo $var
$var
    
por 16.08.2012 / 23:57
0

Ao criar sua linha de comando, continue a usar as aspas simples, mas escape (use) qualquer aspas simples internas e as substitua por aspas simples sem terminar as citações da string como um todo.

    
por 17.08.2012 / 03:06

Tags