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.
davy.ai
El comando
xdotool
dentro del script proporcionado se encuentra dentro de una funcióneval
, 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 def
H, lo que hará que el comando no funcione como estaba previsto. Para solucionar esto, use comillas simples en lugar de comillas dobles alrededor del comandoxdotool
o escape los corchetes con barras invertidas. Aquí hay una funciónjoc
actualizada con la solución: