Como você precisa executar um comando com um valor fornecido por um comando anterior, você precisa pelo menos executar dois comandos diferentes. Portanto, primeiro armazene o valor de wid
e, em seguida, use uma verificação de if
de uma linha:
wid=$(xdotool search --name Keyboard|head -1)
[[ "$(xwininfo -id "$wid" | grep "Map State:")" == *IsViewable ]] && xdotool windowunmap $wid || xdotool windowmap $wid
Isso leva em consideração o fato de que uma condição if
:
if [ ... ]; then
do if true
else
do if false
fi
Pode ser escrito como um mero [ ... ] && do if true || do if false
Em apenas uma linha:
wid=$(xdotool search --name Keyboard|head -1); [[ "$(xwininfo -id "$wid" | grep "Map State:")" == *IsViewable ]] && xdotool windowunmap $wid || xdotool windowmap $wid