【嵌入式开发 Linux 常用命令系列 14.1 -- .bashrc 定义函数】

2023-12-15 19:05:59

上篇文章:【嵌入式开发 Linux 常用命令系列 14 – source hello.sh 和 ./hello.sh 的区别】

文章目录

.bashrc 定义函数

.bashrc 文件中定义别名时,通常不能直接传递参数。别名是用于创建命令的简写形式,它们不支持参数。然而,如果你需要使用参数,你可以定义一个 shell 函数并将其放在你的 .bashrc 文件中。

例如,如果你想创建一个别名来使用 grep 命令,并且想要传递一个参数(比如要搜索的模式),你可以在 .bashrc 中这样做:

# 在 .bashrc 文件中定义一个函数作为别名 
mygrep() { 
	grep "$1" "${@:2}" 
} 
# 每次打开新的 shell 时,重新加载 .bashrc 
alias reloadbashrc='source ~/.bashrc' 

在这个示例中,mygrep 函数的第一个参数 "$1" 被用作 grep 的模式,而 "${@:2}" 表示从第二个参数开始的所有参数,这些参数将被传递给 grep 命令。

保存你的 .bashrc 文件后,你需要重新加载它以使更改生效。你可以关闭并重新打开你的终端,或在终端中运行以下命令:

source ~/.bashrc 

现在,你可以像使用别名一样使用 mygrep 函数,并传递参数给它:

mygrep "pattern_to_search" /path/to/file_or_directory 

这会调用 grep 并搜索指定的模式。通过这种方式,你可以使用函数来模拟接收参数的别名。

例子二
由于每次登录服务器上的FPGA,都需要执行ssh sam@fpga$1.armtech.cn 命令,很是麻烦。所以就在.bashrc 中定义了fpga函数,并根据传入的参数来选择登录哪台FPGA。

function fpga {
        sshpass -p Sam\$xxx ssh sam@fpga$1.armtech.cn
}

这类 sshpass 命令用于在命令行中输入密码。

上篇文章:【嵌入式开发 Linux 常用命令系列 14 – source hello.sh 和 ./hello.sh 的区别】

文章来源:https://blog.csdn.net/sinat_32960911/article/details/135010929
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。