Shell特殊变量、函数与参数传递
案例1:
#!/bin/bash
# 执行: ./demo.sh 11111 22222
# 注:$10不能获取第十个参数,获取第十个参数需要${10};
# 当n>=10时,需要使用${n}来获取参数;
echo "当前执行的脚本:$0"
echo "接收当前脚本的参数:$@"
echo "接收当前脚本的参数1:$1"
echo "接收当前脚本的参数2:$2"
# 定义函数
function fn1() {
echo "函数的参数:$@"
echo "函数的参数1:$1"
echo "函数的参数2:$2"
return $[ $1+$2 ]
}
# 调用函数
fn1 12 34
# 获取返回值
val1=$?
echo "函数的调用结果为:$val1"
# 函数的返回值介于0~255之间的整数,0表示成功,其它值都表示失败
# $?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值
fn1 123 456
val2=$?
echo "函数的调用结果为:$val2"
Shell函数的调用与返回值处理
案例1:
#!/bin/bash
# 当函数返回字符串时的处理办法
# 定义函数,省略:function
get_str(){
echo "函数参数:$@"
echo "这里是函数返回的字符串~"
}
# 调用函数1
echo `get_str aaa bbb`
# 调用函数2
echo $(get_str aaa bbb)
# 定义函数,省略写法
get_num(){
local x
x=$[ $1+$2 ]
return $x
}
# 调用函数
get_num 12 45
echo "调用结果:$?"
## 和获取内容
get_content(){
cat /etc/passwd > $1
return 0
}
# 调用函数
filename="file"
get_content $filename
# 打印函数处理内容
cat $filename | while read line
do
echo $line
done
# 移除文件
rm -rf $filename