hpr3625 :: Shell Tips and Snippets - Collaborative Effort
Carl and special guests provide some shell tips and examples.
Hosted by Carl on Friday, 2022-06-24 is flagged as Clean and is released under a CC-BY-SA license.
shell.
2.
The show is available on the Internet Archive at: https://archive.org/details/hpr3625
Listen in ogg,
spx,
or mp3 format. Play now:
Duration: 00:20:25
Bash Scripting.
This is an open series in which Hacker Public Radio Listeners can share their Bash scripting knowledge and experience with the community. General programming topics and Bash commands are explored along with some tutorials for the complete novice.
Carl talks about a method to move function definitions to the bottom of a script using sed:
#!/bin/sh
source <(sed '1,/^exit/ d' $0)
__say "hello"
exit
__say()
{
echo $1
}
Guest Host #1 (scroll to the bottom to ruin the surprise) talks about the shift command using this example:
startdate="$1" # Pick up date
shift
days=0
# Loop through args and create events
while [ $1 ] ; do # as many times as you add a timestamp
[ $1 != "off" ] && khal new $(date -j -v+"$days"d -f %Y-%m-%d +%Y-%m-%d $startdate) $1 8H Work
let days++
shift
done
Guest Host #2 provides tips and examples on how to use variables safely and politely provide default values. One example of assigning a default value is:
foo=${foo:-"blah"}
Carl then closes out with the : (colon) shell builtin and provides a variation on the above default value:
: ${foo:="blah"}