Como criar uma função bash que lê stdin com aspas?

1. Como criar uma função bash que lê stdin com aspas?

Emmanuel Nascimento de Carvalho de Brito
emmanuelncb

(usa Debian)

Enviado em 28/07/2020 - 19:46h

Eu estou precisando de uma função no bash que mostre tudo que o usuário digitou de forma literal, incluindo as aspas, já tentei os procedimentos abaixo:

O 1ª não mantém as aspas
f() { echo "$@"; } 

O 2ª só adiciona aspas no inicio e fim da variável
f() { echo \"$@\"; } 

O 3ª funciona, mas, é necessário rodar a função para depois inserir os argumentos, tornando inviável usa-lá dentro de scripts por exemplo?
f() { read var ; echo "$var"; }  

Usar \ ou 2 aspas resolve o problema, mas, a escrita fica difícil:
f it\'s \"ok\" ou f it"'"s '"'ok'"' 

Eu quero uma função simples para fazer algo semelhante ao que mostro abaixo... Isso é possível?
$ função it's "ok"
it's "ok"



  


2. Re: Como criar uma função bash que lê stdin com aspas?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/07/2020 - 20:34h

emmanuelncb escreveu:

Eu estou precisando de uma função no bash que mostre tudo que o usuário digitou de forma literal, incluindo as aspas, já tentei os procedimentos abaixo:

O 1ª não mantém as aspas
f() { echo "$@"; } 

O 2ª só adiciona aspas no inicio e fim da variável
f() { echo \"$@\"; } 

O 3ª funciona, mas, é necessário rodar a função para depois inserir os argumentos, tornando inviável usa-lá dentro de scripts por exemplo?
f() { read var ; echo "$var"; }  

Usar \ ou 2 aspas resolve o problema, mas, a escrita fica difícil:
f it\'s \"ok\" ou f it"'"s '"'ok'"' 

Eu quero uma função simples para fazer algo semelhante ao que mostro abaixo... Isso é possível?
$ função it's "ok"
it's "ok"

Boa noite Emmanuel, já que não quer escapar... Digite # no lugar de "
Segue sugestão:
pega(){ sed 's/#/"/g' <<< "$@";} 

pega "it's #ok#"
it's "ok"
Tbem pode usar o "tr";
tr "#" "\"" <<< "$*";



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts