Abe*_*ejo 15 command-line bash functions
我打算创建一个可以为我简化事情的函数。该功能将类似于
function lazymode()
{
echo "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)
这样当我lazymode
在shell 中使用命令时,它会输出Hello World!
.
我应该把用户定义的函数放在什么文件中?
Oli*_*Oli 15
取决于功能。如果它只是一个像这样的超级简单的单行代码,您可以创建一个别名或将函数粘贴在其中~/.bashrc
(bash 启动时加载的文件)。
如果您正在创建更丰富的内容,那么创建自己的可执行脚本可能更有意义,该脚本~/bin/
默认情况下不存在(它只是一个目录)但应该在您的路径中。请记住,该文件需要是可执行的 ( chmod +x filename
) 并以适当的#!/bin/bash
节开始。
第二条路线有一些明显的好处:
~/bin/
也在该 shell 的路径中(在大多数情况下应该是 AFAIK),它就可用于任何 shell。最好的选择是~/.bashrc
文件。
你要么可以直接写你的shell函数定义在你的~/.bashrc
文件,或者,如果你有很多人,不想弄乱你的~/.bashrc
文件,你可以把它们都在你选择的其他文件-只是一定要源说文件中的~/.bashrc
文件。例如,如果包含您的函数的文件名为bash_functions
,只需在您的~/.bashrc
文件中添加以下行:
if [[ -f /path/to/bash_functions ]]; then
source /path/to/bash_functions
fi
Run Code Online (Sandbox Code Playgroud)
或者,等效地:
if [[ -f /path/to/bash_functions ]]; then
. /path/to/bash_functions
fi
Run Code Online (Sandbox Code Playgroud)
其中.
只是 的符号表示source
。在尝试获取if
文件/path/to/bash_functions
之前,该测试确保该文件存在。
这种技术非常类似于~/.bashrc
通过创建一个名为in的文件~/.bash_aliases
并使用与上述 in 类似的语法~/.bashrc
来测试它的存在然后获取它来建立别名。
归档时间: |
|
查看次数: |
15022 次 |
最近记录: |