read line
n=1
bInString=0
bIsLastSpace=0
for(( i = 0; i < ${#line}; ++i));
do
temp=${line:i:1}
if [ "$temp" = "\"" ]; then
param[$n]=${param[$n]}$temp
if [ $bInString = 0 ]; then
bInString=1
else
bInString=0
echo "param $n : ${param[$n]}"
n=`expr $n + 1`
bIsLastSpace=1
fi
elif [[ "$temp" = " " ]] || [[ "$temp" = " " ]]; then
if [ $bInString = 1 ]; then
param[$n]=${param[$n]}$temp
elif [ $bIsLastSpace = 0 ]; then
bIsLastSpace=1
echo "param $n : ${param[$n]}"
n=`expr $n + 1`
fi
else
bIsLastSpace=0
param[$n]=${param[$n]}$temp
fi
done
shell从管道读取命令行并解析,双引号中有空格计算为一个参数
最新推荐文章于 2022-03-31 21:28:56 发布