私のOpenbox自動起動ファイルの完全な内容は次のとおりです。
# Compositor
picom &
# Korean input
ibus-daemon -dr &
# Screensaver
xscreensaver -no-splash &
# Wallpaper
while true; do
nitrogen --random --set-auto
sleep 3600
end
picom
しかし、ログインしたときにのみ正常に実行されるようです。
bash ~/.config/openbox/autostart
端末で実行すると、次のように表示されます。
/home/max/.config/openbox/autostart: line 33: syntax error: unexpected end of file
だから私のwhileループに問題があるようですが、どうしますか?
答え1
bash
この構文が元のBourneシェルと同様に、ループwhile
は次のように始まりますdone
。
# Wallpaper
while true; do
nitrogen --random --set-auto
sleep 3600
done
シェルはwhile
ループの始まりを探し、前方に読んでループの終わりを探します。終了キーワードを見つける前に、ファイルの終わりに達して文句を言いdone
ます。したがって、「予期しないファイルの終わり」が発生します。