在Bash中打印接收的参数

时间:2012-05-20 19:34:26

标签: bash

我需要在每一行的末尾打印一个接收到的参数......这就是我所做的:

无用户打印信息:
CODE

user=$1
while read line; do
       linearr=($line)
       echo "${linearr[2]} ${linearr[0]} ${linearr[3]}"
done

输出:

b name2 5
c name3 2
a name1 0

在每行末尾用户打印信息:
代码:

user=$1
while read line; do
       linearr=($line)
       echo "${linearr[2]} ${linearr[0]} ${linearr[3]} $user"
done

输出:

omare2 5
omare3 2
omare1 0

如果我打印用户(echo $user),它通常打印名称(奥马尔)...... 为什么会这样?

1 个答案:

答案 0 :(得分:3)

最有可能${linearr[3]}\r结尾。 ($user也可以从该字符开始。)

(如果您从具有Windows类型行结尾\r\n的文件重定向,则可能会发生这种情况。)