Script Bash si - otras condiciones

Script Bash si - otras condiciones

Me gustaría crear un script bash que descargue un instalador específico de Internet, lo instale, cree un archivo de escritorio que lo inicie, lo haga iniciar automáticamente y luego elimine el instalador, pero hay algunas cosas que me gustaría tener en el script. verificar. Estas cosas son:

  • la existencia del instalador (si no existe, descárguelo; de lo contrario, configúrelo como ejecutable)

  • la existencia de una instalación anterior (si existe, configure el ejecutable del desinstalador, ejecútelo y elimine todo lo que dejó; de lo contrario, vaya al siguiente paso)

  • el estado del paquete gksu mediante apt list | grep gksu (si está instalado, vaya al siguiente paso; de lo contrario, instálelo) y

  • la salida de gksu example.run (si hay una línea "GNOME_SUDO_PASS", repita gksu example.run; de lo contrario, vaya al siguiente paso)

Respuesta1

Condición: instalador - ls. | grep ejemplo.runchmod +x pelda.run más wget descargar/enlace/de/ejemplo.run

Según tengo entendido lo anterior, se traduce en:

if [ -f example.run ]
then
    chmod +x pelda.run
else
    wget download/link/of/example.run
fi

[ -f example.run ]es un ejemplo del uso del testcomando. Si existe un archivo llamado example.run, entonces el comando de prueba establece un código de retorno de 0 (que significa verdadero). Si no es así, establece un código de retorno de 1 (que significa falso).

Condición: gksu - lista de aptos --instalado | grep gksu, si existe, entonces sudo apt install gksu else gksu pelda.run

Según interpreto lo anterior, se traduce en:

if apt list --installed | grep gksu
then
    gksu pelda.run
else
    sudo apt install gksu
fi

Aquí, utilizamos el hecho de que grepestablece un código de retorno dependiendo de si encuentra una coincidencia o no. apt list --installeddevuelve una lista de paquetes instalados. Si su salida en algún lugar contiene la cadena gksu, entonces grepestablece un código de retorno de 0 (que significa verdadero) y thense ejecuta la cláusula. Si no es así, elsese ejecuta la cláusula.

información relacionada