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