shell script 变量、常量和函数
函数
shell函数有两种语法:
- 第一种
function name{
commands
return
}
- 第二种
name (){
commands
return
}
这两种格式等价,可以交替使用。
例1:应用函数
#!/bin/bash
#shell function demo
function funct{
echo "step 2"
return
}
#Main program starts here
echo "step 1"
funct
echo "step 3"
将输出
step 1
step 2
step 3
下面给我们的最小的网页添加一些shell函数
#!bin/bash
#program to output a system information page
TITLE=System Information Report For $HOSTNAME
CURRENT_TIME=$(data +"%x")
TIME_STAMP="Generate $CURRENT_TIME,by $USER"
report_uptime(){
return
}
report_disk_space(){
return
}
report_home_space(){
return
}
cat << EOF
<HTML>
<HEAD>
<TITLE>$TITLE</TITLE>
</HEAD>
<BODY>
<H1>$TITLE</H1>
<P>$TIME_STAMP</P>
$(report_uptime)
$(report_disk_space)
$(report_home_space)
</BODY>
</HTML>
EOF
全局变量与局部变量
定义在函数外部(即不属于任何一个函数的变量)为全局变量
定义在某个函数内部,且由local标记的变量为局部变量。
例2:
#!bin/bash
#local and global vars
foo=0 #global variable foo
funct() {
local foo
foo=1
echo "funct_1: foo=$foo"
}
echo "global: foo=$foo"
funct
可以看到
global: foo=0
funct_1: foo=1