如何在新的终端

问题描述:

访问功能的.bashrc我.bashrc这样创建的函数;如何在新的终端

#!/bin/bash 
function test() { ls; } 
export -f test 

并且像这样在新的终端中调用它;

$ test 

结果是test: command not found

我做了什么错在.bashrc访问功能?

+3

你在调用函数之前运行过'source .bashrc'吗? – codeforester

+2

很有趣,因为'测试'存在于任何系统上。 – jm666

+2

你在哪里写了'.bashrc'文件?而且,你是否正在运行'bash'? –

直到.bashrc都来源于明确或启动非登录交互式shell时才定义该函数。如果你的终端启动一个登录shell,那么这个文件将不会被找到。

你并不需要导出功能。

+0

的一个命令你在说的是,我需要运行'源.bashrc'据我了解。我做到了,但结果相同。 – Miral

+1

您需要在您的问题中提供一些实际的事实:您正在采购的* exact *文件以及您正在运行的命令不起作用。 – chepner

您可能希望做一个“功能”的文件在你的home目录和源在你的.bashrc。

前:如下所示,这是行不通的。

%[email protected]> add 2 3 
bash: add: command not found... 

定义在$ HOME功能/。功能

%[email protected]> cat ~/.function 
add() 
{ 
     echo "$1 + $2" | bc 
} 

这里是我如何采购在我的$ HOME/.bashrc中

%[email protected]> cat ~/.bashrc|grep source|grep func 
     source $HOME/.function 
%[email protected]> 

所有功能您可能需要打开它或重新登录,或者在提示符下键入bash,它应该可以工作。

现在,它的工作原理:

%[email protected]> add 2 3 
5 
%[email protected]> 

请试试看。谢谢。