本文特指在 shell 脚本(shell script)中使用 alias 别名。
在交互式 shell 中,我们可以使用 alias mycmd='command args...'
来创建一个别名,当我们执行 mycmd
命令时,实际上执行的是 command args...
命令,通常我们会为长命令创建一个短别名,方便使用。
那么你有尝试过在 shell script 中使用 alias
指令吗?如果你尝试过,你可能已经知道,在 bash 脚本中,默认是不允许使用 alias 指令的,虽然这条指令不会报错,但是实际上是没有生效的,请看例子:
1
2
3
#!/bin/bash
alias sayhello='echo "hello, world!"'
sayhello
1
2
$ ./alias.sh
./alias.sh: line 3: sayhello: command not found
那么如何在 shell script 中使用 alias 指令呢?在脚本开头添加 shopt -s expand_aliases
即可:
1
2
3
4
#!/bin/bash
shopt -s expand_aliases
alias sayhello='echo "hello, world!"'
sayhello
1
2
$ ./alias.sh
hello, world!