Existem dois problemas principais no seu script.
-
para ler algo do stdin e colocá-lo em uma variável chamada
titre
que você precisaread titre
(sem um anterior
$
). Isso colocará sua entrada em a variável$titre
. -
Para substituir a palavra literal
titre
pelo conteúdo da variável$titre
que você precisased -i "s/titre/$titre/" ~/mal-project/sources/anime-list
Os curlies ( ${titre}
vs. $titre
) são necessários apenas para deixar claro onde uma variável termina se a situação for ambígua. Considere que você deseja substituir o literal titre
pelo conteúdo da variável $titre
mais pelo texto deux
. A abordagem ingênua seria
s/titre/$titredeux/
Mas aqui titre
seria substituído por nada (string vazia) porque não há variável $titredeux
. Por isso, escrevemos
s/titre/${titre}deux/
para deixar claro que a variável é na verdade apenas $titre
.