我有一个名为“ current_letter.txt”的文件,其中显示了今天的字母(A-K)
cat current_letter.txt
C
每天的字母增加一个字母(昨天的字母为“ B”,明天的字母为“ D”
如何将昨天的字母放入变量中?
Example:
A=K
B=A
C=B
D=C
E=D
F=E
G=F
H=G
I=H
J=I
K=J
我正在尝试将昨天的信放入
这样的变量中yesterdays_letter=`cat current_letter.txt - 1`
因此它使用-k,然后重复自身
答案 0 :(得分:3)
您可以使用tr
满足所有凯撒密码的需求:
#!/bin/bash
for c in {A..Z}
do
b=$(printf '%s' "$c" | tr 'B-ZA' 'A-Z')
echo "One letter before $c is $b"
done
这将输出:
One letter before A is Z
One letter before B is A
One letter before C is B
One letter before D is C
(etc)
答案 1 :(得分:0)
您提供的示例部分没有意义,是文件的内容吗?
这是解决方法:
a='ABCDEFGHIJK';
v=$(cat current_letter.txt);
if [ "$v" = 'A' ]; then
var='K';
else
var=${a[$(($(expr index $a $v)-2))]};
fi;
echo $var;