Você tem dois problemas
- sua variável de ambiente contém caracteres '/'
- você está contendo seu argumento sed entre aspas simples, então $ {X} é passado não-substituído
Você pode usar qualquer caractere como um delimitador de comando sed
. Escolha algo que provavelmente não está na sua string de pesquisa. E use aspas duplas em torno do comando sed
..
Por exemplo:
sed -i -e "s;${X};gsl-install;g" tedious.log