不同shell文件中的函数调用

first.sh文件中新建函数funcFirst

#!/bin/bash
echo $0   #上一行的感叹号要使用英文字符
funcFirst(){
echo "I am funcFirst()"
echo "function:$FUNCNAME in lineNumber: $LINENO lineNumber2:${BASH_LINENO[1]} Brother: ${FUNCNAME[1]}"
}

second.sh文件中调用first.sh中的funcFirst()函数

first.sh导入second.sh方法(.first.shsourcefirst.sh../first.sh)

#!/bin/bash
#sh first.sh #不能导入文件
#. first.sh
#source first.sh
. ./first.sh
funcFirst
funcSecond(){
funcFirst
}
funcSecond

执行结果

hyc@hyc-csu:~/shellCommands$bash second.sh
second.sh
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:0 Brother:main
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:12 Brother:funcSecond
hyc@hyc-csu:~/shellCommands$sh second.sh【备注:ubuntu中默认dash
second.sh
I am funcFirst()
second.sh:5: second.sh: Bad substitution
hyc@hyc-csu:~/shellCommands$.second.sh
bash
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:617 Brother:source
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:12 Brother:funcSecond
 hyc@hyc-csu:~/shellCommands$./second.sh【备注:需要给second.sh加执行权限chmod+x second.sh
./second.sh
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:0 Brother: main
I am funcFirst()
function:funcFirst in lineNumber: 5 lineNumber2:10 Brother: funcSecond

结论

1.在一个shell文件中,调用另一个shell文件的函数,导入的方法有:(.filename)(sourcefilename)(shfilename测试不能通过)

2.区分source(等价.)sh/bash ./执行shell

3.区分shell内置变量$LINENO,$FUNCNAME($FUNCNAME表示函数本身,$FUNCNAME[1]表示调用$FUNCNAME的函数),$BASH_LINENO






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值