Linux 从文件打印IFS值

Linux 从文件打印IFS值,linux,shell,parsing,ksh,Linux,Shell,Parsing,Ksh,脚本: 脚本的输出: A 1 B 2 如果我从echo“x”中删除,例如 我越来越 echo ${RECORD} ${VALUE} 怎么了 更新: 如果我这样做 它可以正确打印: echo "X" ${RECORD} ${VALUE} 以及: 也可以正确打印,因此我猜问题在于可能包含回车符符号的值(因为输入文件是在windows上创建的)在循环中添加以下内容: echo ${RECORD} "X" 解决了这个问题,如果您有更好的解决方案,您将非常受欢迎。有一个参数展开运算符

脚本:

脚本的输出:

A 1
B 2
如果我从echo“x”中删除,例如

我越来越

echo  ${RECORD}  ${VALUE}
怎么了

更新:
如果我这样做

它可以正确打印:

echo  "X" ${RECORD}  ${VALUE}
以及:


也可以正确打印,因此我猜问题在于可能包含回车符符号的值(因为输入文件是在windows上创建的)

在循环中添加以下内容:

  echo  ${RECORD} "X"

解决了这个问题,如果您有更好的解决方案,您将非常受欢迎。

有一个参数展开运算符,您可以使用它从值的末尾删除字符(如果有)

VALUE=`echo $VALUE| tr -d '\r'`

这是在shell中处理的,无需启动新进程。

我无法重现您的错误(我使用的是os x 10.9.5)。你如何运行你的脚本。。。像
ksh脚本输入文件
?。myscript.sh file.txt
echo  "X" ${RECORD}  ${VALUE}
X A 1
X B 2
  echo  ${RECORD} "X"
VALUE=`echo $VALUE| tr -d '\r'`
VALUE=${VALUE%$'\r'}