For example, I want to make a command good night
and this would look something like alias good night="many many many commands here"
. I tried this but, whitespace is not allowed. Is there any way I could accomplish this?
Asked
Active
Viewed 9,144 times
3

wjandrea
- 14,236
- 4
- 48
- 98

ujwal dhakal
- 191
1 Answers
10
This function should get you started:
good () {
if [ -z "$1" ]; then
echo "Perhaps you meant 'good night'?"
else
if [ "$1" = "night" ]; then
echo "GOOD"
echo "NIGHT"
echo "good"
echo "night"
echo "etc"
else
echo "ERROR: strange time detected: $1"
fi
fi
}
Save it as, for example, good.sh
, then source
it:
. good.sh
good night
now will execute various commands (replace the echo
statements with whatever you want).
-
1You can add the line that sources your script to the end of your
~/.bashrc
file so that the function will be available in every Bash session. – Byte Commander Jan 12 '17 at 16:18 -
Or put the function itself in the bashrc, which may be more convenient. – wjandrea Jan 12 '17 at 18:43
-
1You could simplify the logic a bit by removing the
if [ -z "$1" ]
statement. It's not needed. – wjandrea Jan 12 '17 at 18:53
good
, which reads its arguments, requires the first one to be "night" and then executes the commands you want. – Byte Commander Jan 12 '17 at 16:11goodnight
? – wjandrea Jan 12 '17 at 18:49