Bash has a ternary
Bash Parameter Expansion
- so today I learned there is a ternary like thing for bash.
Old way of doing it.
ᚱ@two-fer $ bat -p /tmp/stuff.sh
#!/bin/bash
if [ "$1" ]
then
echo "One for $1, one for me."
exit 0
fi
echo "One for you, one for me."
ᚱ@two-fer $
ᚱ@two-fer $ /tmp/stuff.sh
One for you, one for me.
ᚱ@two-fer $
ᚱ@two-fer $ /tmp/stuff.sh coolguy
One for coolguy, one for me.
ᚱ@two-fer $
Cooler approach.
ᚱ@two-fer $ bat -p /tmp/stuff.sh
#!/bin/bash
echo "One for ${1:-you}, one for me."
ᚱ@two-fer $
ᚱ@two-fer $ /tmp/stuff.sh coolguy
One for coolguy, one for me.
ᚱ@two-fer $
ᚱ@two-fer $
ᚱ@two-fer $ /tmp/stuff.sh
One for you, one for me.
ᚱ@two-fer $
- The above example basically checks to see if the variable is set, if not, the default value will be used.