shell中调用另一个脚本文件
一个脚本调用另一个脚本或另一个脚本中的函数有三种方法,分别为使用source;使用.;使用sh。
第一个脚本
[root@localhosttest]# vi first.sh
#!/bin/bash
echo"in the first file...."
first_function()
{
echo"in the first function of first file"
}
FIRSTVAR=”firststring”
第二个脚本
[root@localhosttest]# vi second.sh
#!/bin/bash
echo"in the second file...."
second_function()
{
echo"in the second function of second file"
}
first_function #使用第一个脚本的函数
echo$FIRSTVAR #使用第一个脚本的变量
第二个脚本调用第一个脚本的方式有
[if !supportLists]1、 [endif]使用source,如
[root@localhosttest]# vi second.sh
#!/bin/bash
source./first.sh #指定被调用脚本(绝对或相对)路径
…..
运行如下
[root@localhosttest]# sh second.sh
in thefirst file....
in thesecond file....
in thefirst function of first file
”firststring”
[if !supportLists]2、 [endif]使用.,如
[root@localhosttest]# vi second.sh
#!/bin/bash
../first.sh #指定被调用脚本(绝对或相对)路径
运行如下
[root@localhosttest]# sh second.sh
in thefirst file....
in thesecond file....
in thefirst function of first file
”firststring”
[if !supportLists]3、 [endif]使用sh,如
[root@localhosttest]# vi second.sh
#!/bin/bash
sh./first.sh #指定被调用脚本(绝对或相对)路径
运行如下
[root@localhosttest]# sh second.sh
in thefirst file....
in thesecond file....
in thefirst function of first file
”firststring”
Here文档
有时候,我们需要对文本块(多行文本)进行重定向。就像对标准输入做的那样。
#!/bin/bash
cat<<EOF>log.txt
LOGFILE HEADER
Thisis a test log file
Function:System statistics
EOF
在cat
<<EOF>log.txt与下一个EOF 行之间的所有文本行都会被当做stdin 数据写入log.txt。<<EOF语法不是从文件读取,而是从当前标准输入获取内容,直到遇到EOF标志。它们之间的文本就是here文档。它以内联的形式提供给shell命令。