duda con un .sh

Muy buenas.

Verán, el acceso rápido para des-habilitar el touchpad de mi portátil no funciona con la distribución de linux que uso, por lo que busque un poco y encontré esta comanda para terminal: synclient TouchpadOff=1 para des-habilitar y synclient TouchpadOff=0 para habilitar.
para mas comodidad los puse en un par de archivos .sh.
Lo que me gustaría hacer es ponerlos juntos en un solo archivo, pero no se que poner dentro del if. Algo así como:
if (synclient TouchpadOff == 1){
synclient TouchpadOff=0;
}
else{
synclient TouchpadOff=1;
}
Si alguien sabe como hacer ese if le estaría muy agradecido.
Cuando pongas código usa el tag de code que se lee todo mejor

Si ejecutas synclient te devuelve la configuracion de todos los parámetros. Puedes usar grep y cut para filtrar los parametros,
synclient | grep TouchpadOff | cut -d= -f 2


aunque aquí te dejara un espacio y el numero, ya que el delimitador que he puesto es "=" para que lo tengas en cuenta

Otra opción con awk

synclient | grep TouchpadOff | awk '{ print ($3) }'


y bueno .. habrá mas alternativas.
muchas gracias, ahora me lo miro!!
Y digo yo, si es solo una línea ¿para qué crearse un sh? ¿No es más fácil un par de alias y punto?
alias padon = 'synclient TouchpadOff=0'
alias padoff = ' synclient TouchpadOff=1'

Los metes en tu profile y listo.
lo siento, pero no entiendo muy bien lo de poner-lo en un profile.

mi idea es tener un archivo en el escritorio que con solo ejecutarlo se desactive o active el touchpad.
por eso pedí la ayuda para el if.

que por cierto, no se como guardar el
synclient | grep TouchpadOff | cut -d= -f 2

en una variable
zmxn escribió:lo siento, pero no entiendo muy bien lo de poner-lo en un profile.

mi idea es tener un archivo en el escritorio que con solo ejecutarlo se desactive o active el touchpad.
por eso pedí la ayuda para el if.

que por cierto, no se como guardar el
synclient | grep TouchpadOff | cut -d= -f 2

en una variable


Coulverrr se refiere q lo metas en el .bash_profile o .bashrc de tu $HOME con eso alias comando= "comando mas complejo" , asi creas un nuevo comando de consola.
Por ejemplo, yo de alias suelo hacerme el comando ll que no esta en linux (que es un ls -l)
Ejemplos: http://seriouswebapps.com/alias-ls-and-ll-with-color
Y otra opción guay es que pongas en el gestor de X que uses (kde, xfce, gnome, etc...) que se ejecute el .sh al inicio xD Otra alternativa es meterlo en el .bashrc (el .sh para q se ejecute solo al abrir una consola, pero solo serviría cuando hagas eso xD)
zmxn escribió:lo siento, pero no entiendo muy bien lo de poner-lo en un profile.

mi idea es tener un archivo en el escritorio que con solo ejecutarlo se desactive o active el touchpad.
por eso pedí la ayuda para el if.

Sencillo y en una línea para poner en un .sh

[[ $(synclient | grep TouchpadOff | awk '{ print ($3) }') -eq 0 ]] && synclient TouchpadOff=1 || synclient TouchpadOff=0
no quiero algo que cambie solo, quiero decidir en que momento ejecutar el código, y para ello había pensado en un simple (el jodio como me esta tocando la moral...) sh en el escritorio, para así, cuando quiera, darle.

codestation, gracias por la linea... pero... esto aun lo entiendo menos. Te cuento:
lo he metido en el archivo sh, si ejecuto el archivo desde un terminal funciona, pero, si le doy doble clic al archivo, no hace nada...
ni en 'ejecutar en un terminal' ni en 'ejecutar' a secas. Alguna idea?
podrías asignar el script a una tecla del portatil y así cuando la pulses activas/desactivas el touchpad
Ronbin escribió:podrías asignar el script a una tecla del portatil y así cuando la pulses activas/desactivas el touchpad


si, también seria una buena opción, pero primer debo lograr que funcione 100%.

me fijé que cuando lo ejecuto haciendo doble clic ignora el if y hace siempre lo que está como else.
9 respuestas