es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El comando xdotool funciona en la línea de comandos, no en un script de bash.

¿Por qué el comando
xdotool search --class mupdf windowactivate --sync type f]H
funciona en la línea de comandos como se esperaba, casi, pero no funciona en absoluto en el siguiente script?

joc(){ # Joy of Cooking, joc [número de página, def 823]
  mupdf $HD/ReadBooks/Rombauer/Rombauer-JoyOfCooking_11_823.pdf ${1:-823}
  sleep 1
  eval "xdotool search --class mupdf windowactivate --sync type f]H"
}

Nota: He intentado en el script tanto con comillas como sin ellas, con y sin eval, con y sin ‘busca … –sync’. Según puedo ver, el comando xdotool no tiene ningún efecto en absoluto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El comando xdotool dentro del script proporcionado se encuentra dentro de una función eval, lo que significa que la Shell evaluará el comando dos veces. La primera evaluación reemplazará $HD con su valor, pero la segunda evaluación eliminará los corchetes [] alrededor de fH, lo que hará que el comando no funcione como estaba previsto. Para solucionar esto, use comillas simples en lugar de comillas dobles alrededor del comando xdotool o escape los corchetes con barras invertidas. Aquí hay una función joc actualizada con la solución:

    joc(){
      # El placer de cocinar, joc [número de página, definición 823]
      mupdf $HD/ReadBooks/Rombauer/Rombauer-JoyOfCooking_11_823.pdf ${1:-823}
      sleep 1
      xdotool search --class mupdf windowactivate --sync type 'f\[H]'
    }
    

Comments are closed.