<> == How can I make an alias that takes an argument? == You can't. 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.