.
Sometimes seems not to work as it could.while [ "$(pidof yad)" ]; do
Probably missing a break, since the test for "$(pidof yad)" might only run once at while begin.
Probably needs additionally a
[ "$(pidof yad)" ] || break
inside it to stop the current loop. Otherwise you'll probably have multiple instances of the while loop running .
like
Code: Select all
while [ "$(pidof yad)" ]; do
sleep 5s
[ -f /tmp/output ] || break
[ "$(pidof yad)" ] || break
NEW_TITLE=$(grep 'StreamTitle' /tmp/output | tail -n1 | sed 's|ICY Info: StreamTitle=||g' | sed 's/;[^-]*$//' | sed s/"'"/" "/g)
if [[ "$NEW_TITLE" != "$TITLE" ]]; then
notify-send -i simple-radio "$action" "$NEW_TITLE"
TITLE="$NEW_TITLE"
fi
done
No GUI freak here, and know nothing about yad.
You have yad GUI and yad --notification .
Probably this is confusing things , so running a new instance of the yad gui would prevent the loop from exiting/breaking.
Otherwise yad --notification might need killall -9 which almost every time succeeds .
You should remove the >/dev/null s to have a better view on things .
You have yad GUI and yad --notification .
Probably this is confusing things , so running a new instance of the yad gui would prevent the loop from exiting/breaking.
Otherwise yad --notification might need killall -9 which almost every time succeeds .
You should remove the >/dev/null s to have a better view on things .
-
- Posts: 282
- Joined: Wed 16 Dec 2009, 21:38
- Location: Earth
Re: lost inside while loop
IIRC:simargl wrote: like variable $action
Loop runs as a separate process so all variables inside it are not visible by parent process.
SUUM CUIQUE.
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
Please don't poll for file changes.
inotifyd will be dormant (using almost no resources) until awakened by an inotify event from the kernel (no polling) - you can get 500 events in 1 second or have the process running dormant for days and it would pop right up as soon as the file changes
Note: inotifyd can monitor stuff other than just changes (:c) including entire directories
Code: Select all
touch /tmp/file #make sure it exists
inotifyd - /tmp/file:c |while read DUMMY; do
echo actions to do when file is changed
done &
Note: inotifyd can monitor stuff other than just changes (:c) including entire directories
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].