Para ter uma ideia do que realmente será executado quando eval
-ing alguma string, tente echo
it first . eval
-ing é como copiar a saída de echo
para o shell e rodar esse :
echo "test2"="'Test Name's Test'"
test2='Test Name's Test'
Existem três citações simples, que nunca serão executadas. E como você não pode incluir aspas simples em strings com aspas simples do Bash (ele nem suporta a contrabarra de escape, ao contrário de muitas outras linguagens), você terá que usar aspas duplas se quiser eval
algo assim:
echo "test2"="\"Test Name's Test\""
test2="Test Name's Test"
Mas como @daniel apontou, o eval
é desnecessário. E você não deveria estar usando eval
em qualquer caso - O único caso que eu já vi de útil eval
é com getopt
output .