Como eu uso variables ​​em strings entre aspas simples?

Eu só estou querendo saber como eu posso ecoar uma variável dentro de aspas simples (estou usando aspas simples como a string tem aspas).

echo 'test text "here_is_some_test_text_$counter" "output"' >> ${FILE} 

Qualquer ajuda seria muito apreciada

As variables ​​são expandidas em strings com aspas duplas, mas não em strings entre aspas simples:

  $ name=World $ echo "Hello $name" Hello World $ echo 'Hello $name' Hello $name 

Se você pode simplesmente trocar as cotações, faça isso.

Se você preferir manter aspas simples para evitar o escape adicional, poderá misturar e combinar aspas no mesmo argumento:

  $ echo 'single quoted. '"Double quoted. "'Single quoted again.' single quoted. Double quoted. Single quoted again. $ echo '"$name" has the value '"$name" "$name" has the value World 

Aplicado ao seu caso:

  echo 'test text "here_is_some_test_text_'"$counter"'" "output"' >> "$FILE" 

use printf:

 printf 'test text "here_is_some_test_text_%s" "output"\n' "$counter" >> ${FILE} 

Use um heredoc:

 cat << EOF >> ${FILE} test text "here_is_some_test_text_$counter" "output" EOF 

A maneira mais legível e funcional usa chaves entre aspas duplas.

 'test text "here_is_some_test_text_'"${counter}"'" "output"' >> "${FILE}" 

com um subshell:

 var='hello' echo 'blah_'`echo $var`' blah blah'; 

Você pode fazer assim:

 $ counter=1 eval echo `echo 'test text \ "here_is_some_test_text_$counter" "output"' | \ sed -s 's/\"/\\\\"/g'` > file cat file test text "here_is_some_test_text_1" "output" 

Explicação : O comando Eval processará uma string como comando, portanto, após a quantidade correta de escape, ela produzirá o resultado desejado.

Diz que executa a seguinte string como comando:

 'echo test text \"here_is_some_test_text_$counter\" \"output\"' 

Comando novamente em uma linha:

 counter=1 eval echo `echo 'test text "here_is_some_test_text_$counter" "output"' | sed -s 's/\"/\\\\"/g'` > file 

Saída de uma variável encapsulada com aspas simples:

 printf "'"'Hello %s'"'" world 
    Intereting Posts