Bash 为什么它不会回音$d";安塞尔

Bash 为什么它不会回音$d";安塞尔,bash,Bash,我需要脚本来输出结果,但是echo“$d”不输出任何内容。我在脚本前面创建了ciphertext.gz,$fil就是ciphertext.gz。Bash脚本: echo "Fil: ciphertext.gz" a="ABCDEFGHIJKLMNOPQRSTUVXYZ" [[ "${*/-d/}" != "" ]] && echo "Usage: $0 [-d]" && exit 1 m=${1:+-} m=- t=$fil printf "Nøgle '

我需要脚本来输出结果,但是
echo“$d”
不输出任何内容。我在脚本前面创建了ciphertext.gz,
$fil
就是ciphertext.gz。Bash脚本:

echo "Fil: ciphertext.gz"

a="ABCDEFGHIJKLMNOPQRSTUVXYZ"

[[ "${*/-d/}" != "" ]] &&
echo "Usage: $0 [-d]" && exit 1
m=${1:+-}
m=-

t=$fil 
printf "Nøgle 'eks. ABCDE': "
read -r k
k=$(echo "$k" | tr [a-vx-z] [A-VX-Z] )
printf "\n"
for ((i=0;i<${#t};i++)); do
    p1=${a%%${t:$i:1}*}
    p2=${a%%${k:$((i%${#k})):1}*}
    d="${d}${a:$(((${#p1}${m:-+}${#p2})%${#a})):1}"
done
echo "$d"
echo“Fil:ciphertext.gz”
a=“ABCDEFGHIJKLMNOPQRSTUVXYZ”
[[“${*/-d/}”!=”“]]&&
回显“用法:$0[-d]”和退出1
m=${1:+-}
m=-
t=每分钟$fil
打印“Nøgle’eks.ABCDE”:
read-r-k
k=$(回声“$k”| tr[a-vx-z][a-vx-z])
printf“\n”
对于((i=0;i扩展注释)(不是真正的答案,因为不清楚代码应该做什么):

  • 这是错误的:

    m=${1:+-}
    m=-
    
    …因为它具有与以下相同的效果:

    m=-
    
  • 这将从标准输入中读取一行:

    read -r k
    
    …除非密文只有一行长 违背了接下来八行代码的目的。即使 标准输入是
    解压
    ,它只会解码 密文的第一行

    在读取k
  • 循环时,将
    包装在适当的


    什么输入需要什么输出?你在做什么?ciphertext.gz中有什么?ciphertext.gz中有文本,我需要对ciphertext.gz中的文本进行解密并显示结果,但使用echo“$d”,它会留下屏幕空白缩进()这对你有好处!
    set-x
    查看
    d=…
    行是如何计算的。
    echo$d
    正在工作,但是你分配给
    d=
    的任务不起作用。可能会显示一条有用的错误消息。祝你好运。