71 lines
1.6 KiB
Plaintext
71 lines
1.6 KiB
Plaintext
import "datetime"
|
|
import "fmt"
|
|
import "os"
|
|
|
|
# Re-runs the command every second, but the output of the calculation
|
|
# ($now / 10) % 10 is the same for 10 seconds in a row.
|
|
#
|
|
# The value of $n over time looks like this:
|
|
#
|
|
# [...]
|
|
# 8
|
|
# [10 seconds pause]
|
|
# 9
|
|
# [10 seconds pause]
|
|
# 0
|
|
# [10 seconds pause]
|
|
# 1
|
|
# [10 seconds pause]
|
|
# 2
|
|
# [...]
|
|
$n = os.system(fmt.printf("echo \"(%d / 10) %% 10\" | bc", datetime.now()))
|
|
|
|
# Re-runs the command every 10 seconds, when $n changes. Produces a str for
|
|
# every line that the command outputs, which happens to be every $n seconds.
|
|
#
|
|
# The value of $i over time looks like this:
|
|
#
|
|
# [...]
|
|
# 108
|
|
# [8 seconds pause]
|
|
# 208
|
|
# [10 - 8 = 2 seconds pause, aborts and restarts]
|
|
# 109
|
|
# [9 seconds pause]
|
|
# 209
|
|
# [10 - 9 = 1 second pause, aborts and restarts]
|
|
# 100
|
|
# 200
|
|
# 300
|
|
# done
|
|
# double done
|
|
# [10 - 0 - 0 - 0 = 10 seconds pause, restarts]
|
|
# 101
|
|
# [1 second pause]
|
|
# 201
|
|
# [1 second pause]
|
|
# 301
|
|
# [1 second pause]
|
|
# done
|
|
# double done
|
|
# [10 - 1 - 1 - 1 = 7 seconds pause, restarts]
|
|
# 102
|
|
# [2 seconds pause]
|
|
# 202
|
|
# [2 seconds pause]
|
|
# 302
|
|
# [2 seconds pause]
|
|
# done
|
|
# double done
|
|
# [10 - 2 - 2 - 2 = 4 seconds pause, restarts]
|
|
# [...]
|
|
$i = os.system(fmt.printf("for x in `seq 3`; do echo \"100 * $x + %s\" | bc; sleep %s; done; echo done; echo double done", $n, $n))
|
|
|
|
# The anotherstr field is updated every time $i changes, however when such a
|
|
# field changes several times in quick succession, the resource is only
|
|
# guaranteed to be ran for the last value. Thus, it is likely that the "done"
|
|
# values will not be printed.
|
|
test "out" {
|
|
anotherstr => $i,
|
|
}
|