problemas con cat y script en bash

Estoy intentando que en un script en bash me muestre en pantalla lo siguiente.

Distro=cat /etc/*-release | grep  "^ID=" | sed -e  's/"//' | sed -e 's/"//'
echo $Distro
*Resto del codigo


Bien si lo ejecuto fuera de script bien, funciona, me dice si es Centos, Debian etc. Una vez que ejecuto el script me da error
linea 12: /cat/(*nombre)-release: Permiso denegado *Nombre de la distribución

El script tiene permiso de ejecución y lo ejecuto como sudo o como usuario normal. Da igual como lo haga que me da error :-?

Por que sucede esto?
Cuando lo ejecutas desde el script, usas ./myscript o con sh myscript ?
Prueba a poner la ejecución del cat entre $() o ``, para guardar el resultado de la ejecución en la variable Distro.

Distro=$(cat /etc/*-release | grep  "^ID=" | sed -e  's/"//' | sed -e 's/"//')
# o
Distro=`cat /etc/*-release | grep  "^ID=" | sed -e  's/"//' | sed -e 's/"//'`
Tendram escribió:Prueba a poner la ejecución del cat entre $() o ``, para guardar el resultado de la ejecución en la variable Distro.

Distro=$(cat /etc/*-release | grep  "^ID=" | sed -e  's/"//' | sed -e 's/"//')
# o
Distro=`cat /etc/*-release | grep  "^ID=" | sed -e  's/"//' | sed -e 's/"//'`


[+risas] [+risas] justo fueron las comillas ``. Con eso ya me funciono.Gracias
3 respuestas