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 次 |
| 最近记录: |