1, bash 中各个命令行 各部分含义
$0就是该bash文件名
$?是上一指令的返回值
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。
"$*"返回的是一个字符串,字符串中存在多处空格。
"$@"返回多个字符串。
$#返回所有位置参数的个数。
cy_get_subnet_from_ip_mask_pair() {
local ip=$1
local mask=$2
if ! cy_check_ip $ip || ! cy_check_ip $mask; then
cy_err "need IP, Mask (format check failed: $ip,$mask)"
fi
IFS='.' read -a a_ip <<< "$ip"
IFS='.' read -a n_ip <<< "$mask"
res=""
for i in 0 1 2 3; do
res="${res}.$(( ${a_ip[$i]} & ${n_ip[$i]} ))"
done
res=${res:1}/$(cy_netmask_ip_to_number $mask)
echo $res
}
local ip=$1
local mask=$2
if ! cy_check_ip $ip || ! cy_check_ip $mask; then
cy_err "need IP, Mask (format check failed: $ip,$mask)"
fi
IFS='.' read -a a_ip <<< "$ip"
IFS='.' read -a n_ip <<< "$mask"
res=""
for i in 0 1 2 3; do
res="${res}.$(( ${a_ip[$i]} & ${n_ip[$i]} ))"
done
res=${res:1}/$(cy_netmask_ip_to_number $mask)
echo $res
}
2, systemdisksarray=systemdisks
systemdisksarraymaxlen=$maxsystemdiskscount
systemdisksarraylen=`echo "$systemdisks" | awk '{print NF}'`
# array service
array() {
local disks="$1" # element into array
local pretag="$2" # array name
local index=0
for var in $disks
do
eval "$pretag$index=$var"
index=`expr $index + 1`
done
}
getarrayelement() {
newname=${1}${2} # pretag and index , as same as the array()
eval "echo $`echo $newname`"
}
array "$systemdisks" "$systemdisksarray"
systemdisksarraymaxlen=$maxsystemdiskscount
systemdisksarraylen=`echo "$systemdisks" | awk '{print NF}'`
# array service
array() {
local disks="$1" # element into array
local pretag="$2" # array name
local index=0
for var in $disks
do
eval "$pretag$index=$var"
index=`expr $index + 1`
done
}
getarrayelement() {
newname=${1}${2} # pretag and index , as same as the array()
eval "echo $`echo $newname`"
}
array "$systemdisks" "$systemdisksarray"