ayuda con un script sh

Imagen de keiserx
0 puntos

este Script deberia instalar en caso de ser nesesario el mplayer, y tambien configurar un archivo dentro de la carpeta /usr/bin que se llama rockandpop para que al escribirlo desde la consola levante el streaming y se escuche la radio. Lo hice en mi pc manualemente desde consola y anda perfectamente pero ahora lo pase a un script y no puedo hacer que ande. Si alguien me puede decir porque no anda se lo agradesco mucho. aca les dejo el script.

#!/bin/bash
a=$(ls /usr/bin| grep mplayer)

b=$(ls /usr/bin| grep rockandpop)

if [ $b = rockandpop ]; then
echo el programa ya esta instalado

else

if [ $a != "mplayer" ]; then

su
sudo apt-get install mplayer
touch /usr/bin/rockandpop
echo #!/bin/bash > /usr/bin/rockandpop
echo mmsh://streaming.fmrockandpop.com/rockandpop?MSWMExt=.asf >> /usr/bin/rockandpop
echo la instalacion fue un exito
rockandpop

else

echo ingrese su contraseña de root para iniciar la instalacion
su
touch /usr/bin/rockandpop
echo #!/bin/bash > /usr/bin/rockandpop
echo mmsh://streaming.fmrockandpop.com/rockandpop?MSWMExt=.asf >> /usr/bin/rockandpop
echo la instalacion fue un exito
rockandpop
fi
fi

exit

Imagen de razaAztk
+1
0
-1

Mira, checa una versión de prueba que hice siguiendo tu algoritmo. Puedes modificarlo un poco para adecuarlo verdaderamente a lo que necesitas hacer:

#!/bin/bash

### funciones

install_mplayer() {
  echo 'Actualmente no se encuentra instalado mplayer'
  echo '¿Desea instalarlo? [s/n]'
  read resp
  if [ $resp = 's' ]
  then
    echo 'Instalando...'
  else
    echo 'Saliendo del script...'
    exit 0
  fi
}

create_rockandpunk() {
  touch rockandpunk
  echo '#!/bin/bash' > rockandpunk
  echo 'echo mmsh://streaming.bla/fuckpunk?XXX=.yupi\' >> rockandpunk
  chmod a+x rockandpunk
  ./rockandpunk
  echo 'Todo chingón'
}


## MAIN

if test -f rockandpunk
then
  echo 'Todo anda chevere'
  exit 0
fi

if test -f /usr/bin/mplayer
then
  echo 'El programa existe'
else
  echo 'El programa NO existe'
  install_mplayer # script function
  create_rockandpunk # script function
fi

echo 

Algunos consejos:
* En vez de usar los filtros de texto + ls, usa la orden test.
* En tus 'echos' a las cadenas ponlas entre comillas simples (si haces uso de alguna variable usa comillas dobles " ")
* En vez de usar 'su', usa 'sudo' que la mayoría de los usuarios de Ubuntu no tienen activo a root; y pss con sudo prácticamente obtienes los mismos resultados. Si vas a modificar algún fichero de root (como lo puede ser /usr/bin/rockandpop) también antepon la orden sudo (ejemplo: sudo echo 'bla' >> /usr/bin/rockandpop).
* Te faltó asignarle permisos de ejecución al script rockandpop (usa: sudo chmod a+x /usr/bin/rockandpop)

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}