Bash Echo不打印

时间:2016-12-10 13:24:49

标签: bash printing echo

#!/bin/bash

declare -A keyPair

while IFS=, read key value; do
    keyPair[$key]=$value
done <$2

while read line; do
    for char in $line; do
        decoded=${keyPair[$char]}
        echo -n "$decoded"
    done
done <$1

这是我上面的代码。我正在尝试输出从文件中读取的文本并替换文件中与关联数组中的文字相对应的文字。(例如AA:{waste:run},程序将用'run'替换所有'waste'实例) 。我想在没有换行的情况下回应输出。我假设这适用于echo -n,但是我的控制台没有输出任何内容。但是,如果我只使用没有-n的echo运行相同的脚本,我的程序将输出以下内容:

zoo
garage
water
mountain

run
father
zoo
underwater
fast

run
walk

foo
fast
father

我想让它看起来像这样

zoo garage water mountain

run father zoo underwater fast

run walk

foo fast father

任何帮助将不胜感激。非常感谢你。

1 个答案:

答案 0 :(得分:1)

问题源于我的输入txt文件中有DOS行结尾。修复DOS行结尾似乎修复了我的所有问题。

了解更多:stackoverflow.com/tags/bash/info