如何在BASH中将1-26转换为a-z?

如何在BASH中将1-26转换为a-z?,bash,Bash,这是comp-sci作业问题的一部分 我想使用bash脚本将[1-26]翻译成[A-Z] #/bin/bash if [ $1 = -u ] && [ $2 = -s ];then #statements echo $3 | tr '[1-26]' '[A-Z]' fi 不要太担心if语句,这是我正在研究的问题的一部分 当我运行时。/file.sh-u-s 2 输出是 B 但是当我运行时。/file-u-s 16 输出是 A6 我想让它输出 P 您可以使用

这是comp-sci作业问题的一部分

我想使用bash脚本将[1-26]翻译成[A-Z]

#/bin/bash
if [ $1 = -u ] && [ $2 = -s ];then
    #statements
    echo $3 | tr '[1-26]' '[A-Z]'
fi
不要太担心if语句,这是我正在研究的问题的一部分

当我运行时。/file.sh-u-s 2 输出是

B
但是当我运行时。/file-u-s 16 输出是

A6
我想让它输出

P

您可以使用字符数组,只需指定索引:

chars=("", {A..Z})
i=26
echo ${chars[i]}  # Z

您可以使用字符数组,只需指定索引:

chars=("", {A..Z})
i=26
echo ${chars[i]}  # Z

./file.sh-u-s 216的输出是什么?这是意外的,但它给了我它的预期输出是什么?未定义?216大于26,所以如果使用tr,我猜没有什么不容易的。./file.sh-u-s 216的输出是什么?这是出乎意料的,但它给了我它的预期输出是什么?未定义?216大于26,所以如果使用tr,我猜没有什么不容易的。