我有一个名为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
,这是第一个翻译的数字。为什么这行不通?
答案 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