2011-10-31 11 views
0

这是我的个人壳的“头文件” tool.h如何导入shell的库源文件

#!/bin/echo Warnning! this libiary must be scourced in file! 
#ostype(): define the system type in val OSTYPE 
ostype(){ 
    osname=`uname -s` 
echo $osname 
} 
ostype 

当我直接调用它,./tool.h它打印的第一行#后”!/ bin中/回声“

这里是我的问题:如何通过anoter shell脚本文件在第一行#!/bin/bash中的'tool.h'中调用此函数”ostype“?

我不知道如何导入“头文件”,就像在Javascript中导入Jquery插件一样。

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
+1

请勿为shell脚本文件使用后缀'.h'; '.h'用于C和C++头文件。使用'.sh'。 –

+0

你真的不应该命名你的文件'tool.h',因为它不是C/C++头文件。 – ObscureRobot

+1

你为什么在shebang中使用'#!/ bin/echo'? '#!/ bin/sh'会更明智。 –

回答

0

你不应该使用.h作为后缀,如果您需要使用.sh(或可能.csh '使用C shell衍生物)。

根据您的外壳,你可能会使用 '点' 命令(POSIX,伯恩,科恩,bash)的外壳,或source命令(C的shell,bash):

. tool.sh 

source tool.sh 

这些都读作为当前shell环境的一部分(而不是在子shell中运行它),脚本(如果名称中没有斜杠,则通过类似PATH的搜索找到它)。这意味着由虚线脚本所做的更改会在调用shell中生效 - 这在定义函数时非常重要。

1

可以source它(假定这是在同一目录下的另一个文件):

source tool.h 
+0

It works!Thx Blender! – sammy