例如 2211 需要顯示 6 但我找不到可以幫助我的命令。我已經嘗試過 cut 但一次只能剪一個。
uj5u.com熱心網友回復:
在 Debian 中作業。嘗試這個:
#!/bin/bash
number="2211"
result=0
for (( i=0; i<${#number}; i )); do
echo "number[${i}]=${number:$i:1}"
result=$(( result ${number:$i:1} ))
done
echo "result = ${result}"
uj5u.com熱心網友回復:
使用while read回圈。
#!/usr/bin/env bash
str=2211
while IFS= read -rd '' -n1 addend; do
((sum =addend))
done < <(printf '%s' "$str")
declare -p sum
如果您的 bash 足夠新,而不是declare
echo "${sum@A}"
uj5u.com熱心網友回復:
如果您有bash5.2 版(迄今為止的最新版本):
shopt -s patsub_replacement
n=2211
echo $((${n//?/ &}))
uj5u.com熱心網友回復:
數學變體可能還有更優雅的變體
sum=0
num=2211
n=${#num}
for ((i=n-1; i>=0; i--)); {
a=$((10**i))
b=$((num/a))
sum=$((sum b))
num=$((num-(b*a)))
echo $i $a $b $num $sum
}
3 1000 2 211 2
2 100 2 11 4
1 10 1 1 5
0 1 1 0 6
$ echo $sum
6
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521970.html
