本文主要介紹shell腳本的傳參與函數返回值,首先看個表格,瞭解一下shell腳本編程中幾個特殊變量。
$0 | 當前腳本的文件名 |
$n | 傳遞給腳本或函數的參數,n是一個數字,表示是第幾個參數。如:$1是第一個參數,$2是第二個參數,以此類推 |
$# | 傳遞給腳本或函數的參數個數 |
$* | 傳遞給腳本或函數的所有參數 |
$@ | 傳遞給腳本或函數的所有參數 |
$? | 上個命令執行狀態或者函數的返回值 |
$$ | 當前shell腳本的進程id |
舉個例子說明:
#!/bin/bash
function is_num()
{
num=$1 //$1表示傳遞給函數is_num的第一個參數
n1=`echo $num|sed 's/[0-9]//g'`
if [ ! -z $n1 ]
then
#echo "this is not a num,please input num"
return 0
fi
return 1
}
function for_valid()
{
echo "參數個數:$#"
for num in $@ //遍歷參數,$@表示傳遞給函數for_valid的所有參數
do
is_num $num
if [ $? -eq 0 ]; then //#?表示函數返回值
echo "$num 不是數字"
#return 0
else
echo "$num 是數字"
#return 1
fi
done
}
echo "當前腳本文件0:$$,當前進程id號:$$"
for_valid 1 2 a b c 7 8