BashFAQ/080
< BashFAQ
80. How can I make an alias that takes an argument?
You can't. Use a function instead. Aliases in bash are extremely rudimentary, and not really suitable to any serious purpose. The bash man page even says so explicitly:
There is no mechanism for using arguments in the replacement text. If arguments are needed, a shell function should be used (see FUNCTIONS below).
Use a function instead. For example,
settitle() {
case "$TERM" in *xterm*|*rxvt*)
printf '\e]2;%s\a' "$1"
esac
}
Oh, by the way: aliases are not allowed in scripts. They're only allowed in interactive shells, and that's simply because users would cry too loudly if they were removed altogether. If you're writing a script, always use a function instead.