我关注本教程看看我是否可以将 Ubuntu 中的桌面壁纸制作成动画 gif。在本教程中,我复制并粘贴了一个据说可以让我做到这一点的脚本。在我尝试运行该脚本之前,一切都正常。
这是脚本:
#!/bin/sh
# Uses xwinwrap to display given animated .gif in the center of the screen
chmod +x gifbg.sh
if [ $# -ne 1 ]; then
echo 1>&2 Usage: $0 image.gif
exit 1
fi
#get screen resolution
SCRH=`xrandr | awk '/current/ { print $8 }'`
SCRW=`xrandr | awk '/current/ { print $10 }'`
SCRW=${SCRW%\,}
#get gif resolution
IMGHW=`gifsicle --info $1 | awk '/logical/ { print $3 }'`
IMGH=${IMGHW%x*}
IMGW=${IMGHW#*x}
#calculate position
POSH=$((($SCRH/2)-($IMGH/2)))
POSW=$((($SCRW/2)-($IMGW/2)))
xwinwrap -g ${IMGHW}+${POSH}+${POSW} -ov -ni -s -nf — gifview -w WID $1 -a
exit 0
:wq
当我尝试在终端中运行脚本时,它返回以下内容:
gifbg.sh: 23: gifbg.sh: arithmetic expression: expecting primary: "(1366/2)-(/2)"
当我在终端中使用指定的图像运行 gifsicle 时,它返回以下内容:
* /home/bc/Pictures/tvStatic.gif 4 images
logical screen 500x375
global color table [256]
background 0
loop forever
+ image #0 500x375
disposal previous delay 0.08s
+ image #1 500x375
local color table [256]
disposal previous delay 0.08s
+ image #2 500x375
local color table [256]
disposal previous delay 0.08s
+ image #3 500x375
local color table [256]
disposal previous delay 0.08s
答案1
前三个错误是因为您的脚本中有非 ASCII ‘
(和’
)字符 - 您需要用常规单引号替换它们'
第四个可能是因为你的shebang#!/bin/sh
正在调用dash
解释器,而不是bash
:参见破折号