Possivelmente, com "saída de exibição" desativada, ele provavelmente não executará o comando em um shell, portanto, a sintaxe GUI=1
não é analisada como uma atribuição. Se for esse o caso, alterar o comando para isso deve funcionar:
/usr/bin/env GUI=1 /home/tomas/show_location_in_chrome.sh
Como um aparte, você provavelmente não precisa da variável GUI, você pode usar o que já está lá para determinar se usar zenity ou não. Por exemplo. A variável DISPLAY só deve ser definida se você estiver logado graficamente, então mudando [ "$GUI" ]
para [ "$DISPLAY" ]
(ou melhor , [[ $DISPLAY ]]
) deve funcionar bem.
Se você quiser usar apenas o zenity quando não estiver sendo executado em um terminal, poderá testar um terminal com o teste -t
. Por exemplo,
if [[ ! -t 1 && $DISPLAY ]]; then # if fd 1 (stdout) is not connected to a terminal, and DISPLAY is non-empty
zenity ...
else
echo ...
fi
EDIT: Como alternativa, adicione uma opção para especificar "gui ou não".
gui=0
while [[ $1 = -* ]]; do
case $1 in
-h|--help) echo "usage..."; exit ;;
-g|--gui) gui=1 ;;
*) echo >&2 "invalid option: $1"; exit 1 ;;
esac
shift
done
#...
if (( gui )); then
zenity ...
else
echo ...
fi