Você pode usar variáveis dentro de $ '…' no bash?

0

Eu tentei o seguinte:

myprogram $'Hello $HOME'

Mas isso não funcionou (o argumento de linha de comando recebido por myprogram foi Hello $HOME e não o valor de $HOME ).

    
por user267935 03.01.2018 / 15:07

2 respostas

3

Além de interpretar as escapes de barra invertida no estilo C, $'...' funciona como uma string de aspas simples. Pelo menos o manual do Bash menciona isso, bem no final de a página em " Citações ANSI-C ":

The expanded result is single-quoted, as if the dollar sign had not been present.

Então, não. É provavelmente por isso que eles escolheram usar aspas simples para isso (ou o contrário), embora eu não saiba sobre o histórico do recurso.

Você terá que usar aspas duplas e alterar as aspas conforme necessário. ou seja,

$ myprogram "Hello $HOME"

ou com uma tabulação misturada

$ myprogram $'Hello\t'"$HOME"
    
por 03.01.2018 / 15:15
0

Você tem que escrever como

$ myprogram "Hello $HOME"

O Bash preservará o significado literal de qualquer coisa entre aspas duplas, exceto $, '(back-tick) ou .So Here, considera "Hello" como o valor, enquanto $ Hello preserva seu valor como uma variável.

    
por 03.01.2018 / 15:39

Tags