当输入"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
仍然为你做:
- 确定
s
是有效整数(提示( - 确定
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 ...)
构造。