如何导入shell的库源文件
这是我个人 shell 的“头文件”tool.h
#!/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/echo”之后的第一行这
是我的问题:如何通过另一个 shell 脚本文件在 'tool.h' 中调用此函数“ostype”,其第一行是 #!/bin/bash
?
我不知道如何像在Javascript中导入Jquery插件一样导入“头文件”。
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
Here's my personal shell's 'head file' tool.h
#!/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
When I call it directly like ./tool.h
it prints the first line that after "#!/bin/echo"
And here is my question: How can I call this function "ostype" in 'tool.h' by anoter shell script file with it's first line #!/bin/bash
?
I don't know how to import the "head file" just like import Jquery plug-in in Javascript.
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以
source
它(假设它位于同一目录中的另一个文件中):You can
source
it (assume this is in another file in the same directory):您不应该使用
.h
作为后缀,可能应该使用.sh
(如果您使用的是 C shell 衍生版本,则可能应该使用.csh
)。根据您的 shell,您可以使用“dot”命令(POSIX、Bourne、Korn、Bash)shell 或
source
命令(C Shell、Bash):这些命令都会读取脚本(在找到如果名称中没有斜杠,则通过类似 PATH 的搜索将其作为当前 shell 环境的一部分(而不是在子 shell 中运行它)。这意味着点脚本所做的更改会在调用 shell 中生效 - 这在定义函数时很重要。
You should not use
.h
as the suffix and probably should use.sh
(or possibly.csh
if you're using a C shell derivative).Depending on your shell, you might use the 'dot' command (POSIX, Bourne, Korn, Bash) shells, or the
source
command (C Shell, Bash):These both read the script (after finding it via a PATH-like search if there's no slash in the name) as part of the current shell environment (as opposed to running it in a sub-shell). This means that changes made by the dotted script take effect in the calling shell - which is important when defining functions.