【发布时间】:2020-07-10 20:33:47
【问题描述】:
我想写一个shell脚本来得到以下输出:
$ Enter String: a2b3
aabbb
我尝试使用for 循环和数组,但循环计数与数组索引混淆,并在数组中留下空元素,因此无法按要求打印出数组。
使用的脚本:
echo "Enter your alphanumeric string: "
read a
n=${#a}
for (( i=0;i<n;i++ ))
do
string[i]=${a:i:1}
if [[ ${string[i]} =~ [a-zA-Z] ]]
then
alpha[i]=${string[i]}
elif [[ ${string[i]} =~ [0-9] ]]
then
if [[ ${string[i+1]} =~ [0-9] ]]
then
num[i]=${string[i]}${string[i+1]}
elif ! [[ ${string[i+1]} =~ [0-9] ]]
then
num[i]=${string[i]}
fi
fi
done
n=${#num[*]}
for (( i=0;i<n;i++ ))
do
echo num[$i] = ${num[i]}
done
n=${#alpha[*]}
for (( i=0;i<n;i++ ))
do
echo alpha[$i] = ${alpha[i]}
done
我得到相同的输出:
$ sh Q1.sh
Enter your alphanumeric string:
a6b3
num[0] =
num[1] = 6
alpha[0] = a
alpha[1] =
【问题讨论】: