Gtk-WARNING ** Inibir chamado com uma janela não realizada

0

Durante a criação de um script para executar uma apresentação de slides no Bash, me deparei com um problema chato. A apresentação de slides será executada muito bem, mas entre as imagens (ou filmes), ela exibirá a área de trabalho e a tela mostrará o aviso acima. Não sei como consertar isso; ou porque está realmente acontecendo.

O script que estou usando para reproduzir a apresentação de slides é bastante simples:

while true
do
for f in $FILES
do
filename=$(basename "$f")
extension="${filename##*.})"

 #shopt -s nocasematch

 if [ $extension == "mp4" ] || [ $extension == "mov" ]
mplayer $filename -fs

elif [ $extension == "jpg" ] 
timeout 5 /usr/bin/eog --fullscreen $filename

fi

done
done

Agora, não tenho certeza do que fiz de errado, mas essa parece ser a única maneira pela qual posso logicamente pensar em escrever esse script. Eu tentei procurar o que o aviso significava, mas não consegui encontrar nada relevante. Não estou nem mesmo procurando corrigir o problema. Se houver uma maneira de impedir que a mensagem retire a tela da apresentação de slides, não me importaria em fazer isso.

    
por Jordan Benge 13.07.2015 / 14:56

1 resposta

0

Eu acredito que o seu script não pode funcionar. Corrija os erros abaixo:

   1  while true
   2  do
   3  for f in $FILES
      ^––SC1009 The mentioned parser error was in this for loop.
   4  do
   5  filename=$(basename "$f")
   6  extension="${filename##*.})"
   7  
   8   #shopt -s nocasematch
   9  
  10   if [ $extension == "mp4" ] || [ $extension == "mov" ]
       ^––SC1049 Did you forget the 'then' for this 'if'?
       ^––SC1073 Couldn't parse this if expression.
  11  mplayer $filename -fs
  12  
  13  elif [ $extension == "jpg" ] 
      ^––SC1050 Expected 'then'.
           ^––SC1072 Expected "#". Fix any mentioned problems and try again.
  14  timeout 5 /usr/bin/eog --fullscreen $filename
  15  
  16  fi
  17  
  18  done
  19  done

Eu não tenho nada melhorado ou adaptado a este script. Agora funciona tecnicamente. Se seu código está logicamente correto, você precisa decidir.

Por exemplo:

while true; do
  for f in $FILES; do
    filename=$(basename "$f")
    extension="${filename##*.}"
    if [ "$extension" == "mp4" ] || [ "$extension" == "mov" ]; then
      mplayer "$filename" -fs
    elif [ "$extension" == "jpg" ]; then
      timeout 5 /usr/bin/eog --fullscreen "$filename"
    fi
  done
done

Dica extra para o futuro:

Seus scripts foram verificados aqui .     
por A.B. 13.07.2015 / 15:23