source: vendor/bash/3.1-p17/examples/functions/notify.bash

Last change on this file was 3228, checked in by bird, 18 years ago

bash 3.1

File size: 732 bytes
Line 
1trap _notify CHLD
2NOTIFY_ALL=false
3unset NOTIFY_LIST
4unalias false
5
6false()
7{
8 return 1
9}
10
11_notify ()
12{
13 local i j
14 local newlist=
15
16 if $NOTIFY_ALL
17 then
18 return # let bash take care of this itself
19 elif [ -z "$NOTIFY_LIST" ]; then
20 return
21 else
22 set -- $NOTIFY_LIST
23 for i in "$@"
24 do
25 j=$(jobs -n %$i)
26 if [ -n "$j" ]; then
27 echo "$j"
28 jobs -n %$i >/dev/null
29 else
30 newlist="newlist $i"
31 fi
32 done
33 NOTIFY_LIST="$newlist"
34 fi
35}
36
37notify ()
38{
39 local i j
40
41 if [ $# -eq 0 ]; then
42 NOTIFY_ALL=:
43 set -b
44 return
45 else
46 for i in "$@"
47 do
48 # turn a valid job spec into a job number
49 j=$(jobs $i)
50 case "$j" in
51 [*) j=${j%%]*}
52 j=${j#[}
53 NOTIFY_LIST="$NOTIFY_LIST $j"
54 ;;
55 esac
56 done
57 fi
58}
Note: See TracBrowser for help on using the repository browser.