最近,我修改了adi1090x的罗菲脚本之一,以适应单一的罗菲主题,我似乎找不出为什么它不起作用。以下列出了整个代码:
#!/usr/bin/env bash
## Music Player Controls
# Import Current Theme
dir="~/.config/polybar/cuts/scripts/rofi"
theme="$dir/mpd.rasi"
# Elements
status="`mpc status`"
if [[ -z "$status" ]]; then
prompt='Offline'
mesg="MPD is Offline"
else
prompt="`mpc -f "%artist%" current`"
mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`"
fi
if [[ ${status} == *"[playing]"* ]]; then
option_1=" Pause"
else
option_1=" Play"
fi
option_2=" Stop"
option_3=" Previous"
option_4=" Next"
option_5=" Repeat"
option_6=" Random"
# Toggle Actions
active=''
urgent=''
# Repeat
if [[ ${status} == *"repeat: on"* ]]; then
active="-a 4"
elif [[ ${status} == *"repeat: off"* ]]; then
urgent="-u 4"
else
option_5=" Parsing Error"
fi
# Random
if [[ ${status} == *"random: on"* ]]; then
[ -n "$active" ] && active+=",5" || active="-a 5"
elif [[ ${status} == *"random: off"* ]]; then
[ -n "$urgent" ] && urgent+=",5" || urgent="-u 5"
else
option_6=" Parsing Error"
fi
#Finally, the actual command.
rofi_cmd() {
rofi \
-dmenu \
-p "$prompt" \
-mesg "$mesg" \
${active} ${urgent} \
-markup-rows \
-theme "$theme" \
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
}
# Execute Command
run_cmd() {
if [[ "$1" == '--opt1' ]]; then
mpc -q toggle && notify-send -u low -t 1000 " `mpc current`"
elif [[ "$1" == '--opt2' ]]; then
mpc -q stop
elif [[ "$1" == '--opt3' ]]; then
mpc -q prev && notify-send -u low -t 1000 " `mpc current`"
elif [[ "$1" == '--opt4' ]]; then
mpc -q next && notify-send -u low -t 1000 " `mpc current`"
elif [[ "$1" == '--opt5' ]]; then
mpc -q repeat
elif [[ "$1" == '--opt6' ]]; then
mpc -q random
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$option_1)
run_cmd --opt1
;;
$option_2)
run_cmd --opt2
;;
$option_3)
run_cmd --opt3
;;
$option_4)
run_cmd --opt4
;;
$option_5)
run_cmd --opt5
;;
$option_6)
run_cmd --opt6
;;
esac当运行时,它显示/home/chaossys/.config/polybar/cuts/scripts/mpd.sh: line 107: syntax error: unexpected end of file,据我所知,这意味着缺少一个括号和/或引号结束,或缺少fi,但我似乎找不到它。
任何和所有的帮助都是感激的。
发布于 2022-10-23 17:09:25
如果您使用https://shellcheck.net (如bash标记摘要中推荐的那样),您将得到以下内容:
Line 53:
rofi_cmd() {
^-- SC1009 (info): The mentioned syntax error was in this function.
^-- SC1073 (error): Couldn't parse this brace group. Fix to allow more checks.
Line 61:
}
^-- SC1083 (warning): This } is literal. Check expression (missing ;/\n?) or quote it.
Line 106:
esac
^-- SC1056 (error): Expected a '}'. If you have one, try a ; or \n in front of it.
^-- SC1072 (error): Missing '}'. Fix any mentioned problems and try again.在实际的外壳检查输出中,错误号链接到有用的解释性文本,您可能需要参考。
发布于 2022-10-23 17:30:53
里基,虽然最终没有给出正确的答案,但却帮助我发现,我意外地逃脱了一次紧要关头,这使我无法正确地看到这两个人。简单地删除第60行中的"“允许脚本工作。
谢谢您的网站Rici,我一定会更经常地使用它,因为它让我知道,第61行中的"}“被视为文字。
https://stackoverflow.com/questions/74172860
复制相似问题