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 test
comando. 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 grep
establece un código de retorno dependiendo de si encuentra una coincidencia o no. apt list --installed
devuelve una lista de paquetes instalados. Si su salida en algún lugar contiene la cadena gksu
, entonces grep
establece un código de retorno de 0 (que significa verdadero) y then
se ejecuta la cláusula. Si no es así, else
se ejecuta la cláusula.