编写一个shell脚本,它接受用户的输入(小于10000的整数),并逐个显示整数的每个数字



当输入"153"时,shell脚本将识别并在屏幕上依次显示"1"、"5"one_answers"3"。如果输入"69",将显示"6"one_answers"9"。

通过sed:管道用户输入

echo $1 | sed 's/(.)/1 /g'

Bash将所有都视为字符串。

下面是一种Bash方法,可以在字符串上逐个字符循环:

s=123
for (( i=0; i<${#s}; i++ )); do
echo "${s:$i:1}"
done

打印:

1
2
3

仍然为做:

  1. 确定s是有效整数(提示(
  2. 确定s是表示小于10000的字符串?(提示:(( double_parentesis ))-Bash内部将这些字符串视为整数(

您的grep支持-o选项吗?然后

$ echo "153" | grep -o .
1
5
3

另一种方法:

#!/bin/bash
string="12345"
while IFS= read -n 1 char
do
echo "$char"
# done <<< "$string"
done < <(echo -n "$string")

如果不关心后面的换行符,则可以使用here字符串来代替< <(echo -n ...)构造。