📜  接受参数的 bash 别名函数 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:54:42.852000             🧑  作者: Mango

接受参数的 bash 别名函数 - Shell/Bash

bash 中,我们可以通过定义别名简化一些常用的命令,以便更高效地使用终端。例如,我们可以为 ls -lh 命令创建一个别名 ll,这样每次就可以直接使用 ll 命令来代替长长的 ls -lh 了。但是,如果我们传入一个参数,如 ll /path/to/dir,那么别名就会失效。

这时,我们可以使用一个更加强大的方式来创建别名,即创建一个接受参数的 bash 别名函数。

创建接受参数的 bash 别名函数

首先,我们需要在 ~/.bashrc(或 ~/.bash_aliases)文件中定义一个函数。例如:

function ll() {
    ls -lh "$@"  # 注意 $@ 用于传入所有参数,包括空格
}

上述函数定义了一个名为 ll 的 bash 别名函数,它接受任意数量的参数,并传递给 ls -lh 命令。

要想使 ll 函数生效,我们需要重新加载 .bashrc 文件或执行 source ~/.bashrc 命令。

此时,我们就可以在终端中使用 ll 命令了,例如:

$ ll /path/to/dir
广泛应用

接受参数的 bash 别名函数不仅可以用于简化命令,还可以应用于其他很多场景。例如:

为常用的 Git 命令创建别名
# 接受参数的 Git add 别名函数
function ga() {
    git add "$@"
}

# 接受参数的 Git commit 别名函数
function gc() {
    git commit -m "$*"
}

# 接受参数的 Git push 别名函数
function gp() {
    git push origin "$@"
}
快速启动本地服务器
# 接受参数的 Python 2 本地服务器别名函数
function server() {
    python -m SimpleHTTPServer "$@"
}

# 接受参数的 Python 3 本地服务器别名函数
function server3() {
    python3 -m http.server "$@"
}
使用自定义命令替代长长的系统命令
# 接受参数的系统剪贴板别名函数
function clip() {
    xsel --clipboard < "$@"
}

# 接受参数的执行多次命令别名函数
function repeat() {
    for i in $(seq "$1"); do
        shift  # 移除第一个参数
        "$@"
    done
}
结论

接受参数的 bash 别名函数能够让我们更高效地使用终端,并且具有广泛的应用场景。通过上述示例,希望读者可以体会到函数与别名的巨大区别,并进一步了解 bash 编程的魅力。