1<- Back /phlog kroovy.de 70 i Err kroovy.de 70 ibsleep - Breakable Sleep Err kroovy.de 70 i======================== Err kroovy.de 70 i Err kroovy.de 70 ibsleep is a sleep that breaks as soon as you press 'b'. Err kroovy.de 70 iIt makes clever use of the -t (timeout) and -n (read n bytes) parameters Err kroovy.de 70 iof the bash built-in: read. Err kroovy.de 70 i Err kroovy.de 70 ibsleep can be used to quickly test something and chain a quick undo Err kroovy.de 70 icommand right after you initial command. Err kroovy.de 70 i Err kroovy.de 70 iexample usage: Err kroovy.de 70 i echo "do something"; bsleep; echo "quickly undo" Err kroovy.de 70 i Err kroovy.de 70 iThe other day I was tinkering with an iptables ruleset and needed exactly Err kroovy.de 70 ithat. So quickly hacked it quick'n'dirty (originally as a one-liner). Err kroovy.de 70 i Err kroovy.de 70 iThe Bash-Shellfunction: Err kroovy.de 70 i Err kroovy.de 70 i function bsleep () { Err kroovy.de 70 i local c=1; Err kroovy.de 70 i local INPUT; Err kroovy.de 70 i while [ ! "$INPUT" == "b" ]; do Err kroovy.de 70 i printf "$c "; # comment out if you prefer silent Err kroovy.de 70 i c=$(($c+1)); Err kroovy.de 70 i read -s -n1 -t1 INPUT; Err kroovy.de 70 i done; Err kroovy.de 70 i printf "\n"; Err kroovy.de 70 i } Err kroovy.de 70 i Err kroovy.de 70 i Err kroovy.de 70 i Err kroovy.de 70 i z Err kroovy.de 70 i z Err kroovy.de 70 i Z Err kroovy.de 70 i .--. Z Z Err kroovy.de 70 i / _(c\ .-. __ Err kroovy.de 70 i | / / '-; \'-'` `\______ Err kroovy.de 70 i \_\/'/ __/ ) / ) | \--, Err kroovy.de 70 i | \`""`__-/ .'--/ /--------\ \ Err kroovy.de 70 i \\` ///-\/ / /---;-. '-' Err kroovy.de 70 i jgs (________\ \ Err kroovy.de 70 i '-' Err kroovy.de 70 i Err kroovy.de 70 hasciinema URL:https://asciinema.org/a/8zUsN5SjoixAZjRvcOURs0lG2 kroovy.de 70 i Err kroovy.de 70 i Err kroovy.de 70 iP.S.: Err kroovy.de 70 iIn general I strife to get rid of bashisms in my daily doing. I noticed Err kroovy.de 70 ithat the built-in read functions of some POSIX shells (e.g. like ksh) do Err kroovy.de 70 inot provide -t or -n. Err kroovy.de 70 iSo I aim to write a little bsleep-program in C in the future. Err kroovy.de 70 i Err kroovy.de 70 iUpdate: Err kroovy.de 70 12024-06-30 - bsleep (rewritten in C) /phlog/bsleep-c.gph kroovy.de 70 .