2011-10-31 16 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