Scripting#
Templates I use in my scripts.
Reacting to Ctrl+c (SIGINT) with trap#
control_c() {
echo # new line for ^C character that is printed
echo "Exiting."
exit 1
}
trap control_c SIGINT
or doing something in any case:
#!/bin/bash
set -e
finally() {
echo finally
}
trap finally EXIT
echo before error
false # change me to true and see what happens
echo after error
Looping Directories Containing Whitespace#
IFS=$'\n' dirs=$(ls /tmp)
for dir in $dirs; do
echo $dir
done
Unpack Variables From Line#
line="foo bar baz"
read foo bar baz <<< $line
namespace_slash_name=foo/bar
IFS=/ read namespace name <<< $namespace_slash_name