bash shell 函数必须是创建在先,调用在后;
(一)函数的创建
格式
第一种:
function name {
commands
}
第二种:
name() {
commands
}
示例:
defInsertDB(){
insert_sql="insert into spider_run_log (
spiders_name,
exec_time,
result,
exec_type) values('$1','$2','$3','$4')"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} --default-character-set=utf8 -e "${insert_sql}"
}
defBuildUrl(){
for data in $@
do
echo ${data}
result=$(curl -s "${url}${data}")
defInsertDB "${data}" "${DATE}" "${result}" "$exec_type"
done
}
说明:
1.关于在函数中使用参数
(1)调用时向函数传参
函数后 空格加上参数值,可多个参数,彼此间用空格隔开
2.在函数中处理变量
函数使用两种类型的变量:全局变量和局部变量。
默认情况下,在脚本张定义的任何变量都是全局变量。在函数外定义的变量可在函数内正常访问。
需要注意的是,如果变量在函数内被赋予了新值,那么在脚本中引用该变量时,新值也依然有效。
局部变量:函数内部使用的任何变量都可以被声明为局部变量,只需要在变量名前加上关键字,local。