bash + 如何将 bz 字符转换为从 1 开始的整数

Jud*_*udy 1 bash awk

在我的 bash 脚本中我想将a-z字符转换为整数

所以我写了以下内容

[[ $var == b ]] && var=1
[[ $var == c ]] && var=2
[[ $var == d ]] && var=3
[[ $var == e ]] && var=4
[[ $var == f ]] && var=5
[[ $var == g ]] && var=6
[[ $var == h ]] && var=7
[[ $var == i ]] && var=8
[[ $var == j ]] && var=9
[[ $var == k ]] && var=10
[[ $var == l ]] && var=11
[[ $var == m ]] && var=12
[[ $var == n ]] && var=13
[[ $var == o ]] && var=14
[[ $var == p ]] && var=15
[[ $var == q ]] && var=16
[[ $var == r ]] && var=17
[[ $var == s ]] && var=18
[[ $var == t ]] && var=19
[[ $var == u ]] && var=20
[[ $var == v ]] && var=21
[[ $var == w ]] && var=22
[[ $var == x ]] && var=23
[[ $var == y ]] && var=24
[[ $var == z ]] && var=25
Run Code Online (Sandbox Code Playgroud)

上面描述的方法并不优雅,我想知道我们是否可以做得更短

有什么建议么?

Cyr*_*rus 5

bash

for var in a b c x y z; do
  var="$(($(printf '%d\n' "'$var") - 97))"
  echo "$var"
done
Run Code Online (Sandbox Code Playgroud)

输出:

0
1
2
23
24
25

来源: https: //superuser.com/a/597624/340330