如何将数字数组更改为相应的字母

时间:2019-04-06 11:35:43

标签: bash

我有一个名为variable的数组,其中包含数字1-26,我正在尝试在bash中使用for循环遍历数组的每个数字,并将其与字母表中的字母关联为{ {1}}只允许我翻译字母表的前几个字母。我的代码示例是

注意:我正在使用bash

tr

我正在尝试创建包含这些已翻译字母的字符串newvar。但是,当我尝试运行此命令时,只会显示#!/bin/bash for p1 in "${variable[@]}"; do if (( $p1 == 1 )); then newvar+='a' elif (( $p1 == 2 )); then newvar+='b' ...... and so on down to z ,这是第一个翻译的数字。为什么这行不通?

2 个答案:

答案 0 :(得分:2)

for p1 in "${variable[@]}"; do
  chars+=( $((p1 + 96)) )
done

printf '%b' $(printf '\\%03o' ${chars[@]})

答案 1 :(得分:0)

也许:

# alphabet=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
alphabet=({a..z})

letters=(8 5 12 12 15 23 15 18 12 4)
phrase=''
for i in "${letters[@]}"; do
    phrase+="${alphabet[i-1]}"
done
echo $phrase
helloworld