Gtk-警告**禁止使用未实现的窗口调用

Gtk-警告**禁止使用未实现的窗口调用

在设置脚本以在 Bash 中运行幻灯片时,我遇到了一个恼人的问题。幻灯片可以正常播放,但在图片(或电影)之间它会显示桌面,并且屏幕会显示上面的警告。我不知道如何修复它;或者为什么会发生这种情况。

我用来播放幻灯片的脚本非常简单:

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

现在我不确定我做错了什么,但这似乎是我能想到的编写此脚本的唯一逻辑方法。我尝试查找警告的含义,但找不到任何相关内容。我甚至不一定想解决这个问题,如果有办法抑制消息从幻灯片中弹出屏幕,我不介意这样做。

答案1

我相信你的剧本不能工作。纠正以下错误:

   1 为真
   2 做
   3 对于 $FILES 中的 f
      ^––SC1009 提到的解析器错误发生在这个 for 循环中。
   4 做
   5 文件名=$(基本名称“$f”)
   6 扩展名="${filename##*.})"
   7  
   8 #shopt -s nocasematch
   9  
  10 如果 [ $扩展名 == “mp4” ] || [ $扩展名 == “mov” ]
       ^––SC1049 你忘记了这个“if”中的“then”了吗?
       ^––SC1073 无法解析此 if 表达式。
  11 mplayer $文件名 -fs
  12  
  13 elif [ $扩展名 == “jpg” ]
      ^––SC1050 应为“then”。
           ^––SC1072 应为“#”。修复所有提及的问题并重试。
  14 超时 5 /usr/bin/eog --fullscreen $filename
  15  
  十六 FI
  17  
  18 完成
  19 完成

我没有对这个脚本进行任何改进或调整。现在它在技术上是可行的。你的代码是否在逻辑上正确,你必须决定。

例如:

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

对未来的额外提示:

检查你的脚本这里

相关内容