Você está com o backtick ( '
) abrindo uma instrução subshell que você nunca está finalizando. Certifique-se de que suas cotações correspondam.
O prompt >
é o shell informando que está buscando mais informações para uma cotação não finalizada apresentando o prompt secundário definido em PS2
.
Você deseja usar a expansão de parâmetros dentro de seu script, portanto, a cotação fraca ( "
) é a cotação a ser usada.
Por exemplo:
$ cat haystack
I found some straw in here!
$ needle=straw
$ sed "s/$needle/pins/" haystack
I found some pins in here!
Vamos dar uma olhada na diferença entre o que acontece quando você usa aspas fracas ( "
) e aspas strongs ( '
):
$ set -x
$ sed "s/$needle/pins/" haystack
+ sed s/straw/pins/ haystack
I found some pins in here!
$ sed 's/$needle/pins/' haystack
+ sed 's/$needle/pins/' haystack
I found some straw in here!
Como você pode ver, com aspas fracas, a expansão de parâmetro para $needle
ocorre na ordem do shell antes de sed
chegar a vê-lo. Com citações strongs, isso não acontece, portanto, sed
está procurando pela expressão regular /$needle/
, que é "fim da entrada seguido pela string needle
", que nunca corresponderá a nada, portanto, nenhuma substituição é feita .