Bash 单个echo语句,以两行显示值

Bash 单个echo语句,以两行显示值,bash,shell,unix,Bash,Shell,Unix,下面的echo语句以两行而不是单行(重定向文件)显示值 实际结果: >>Tue Dec 1 10:20:24 IST 2015: Value1:1 Value2:2 预期结果: >>Tue Dec 1 10:20:24 IST 2015: Value1:1 Value2:2 告诉我这句话有什么问题。您使用的echo没有问题。从您的输出来看,VAL1中似乎有一个换行符 您可以尝试删除它: VAL1="${VAL1//$'\n'}" 使用echo没有问题。从您的输出来

下面的echo语句以两行而不是单行(重定向文件)显示值

实际结果:

>>Tue Dec 1 10:20:24 IST 2015: Value1:1 
Value2:2
预期结果:

>>Tue Dec 1 10:20:24 IST 2015: Value1:1 Value2:2

告诉我这句话有什么问题。

您使用的
echo
没有问题。从您的输出来看,
VAL1
中似乎有一个换行符

您可以尝试删除它:

VAL1="${VAL1//$'\n'}"

使用
echo
没有问题。从您的输出来看,
VAL1
中似乎有一个换行符

您可以尝试删除它:

VAL1="${VAL1//$'\n'}"

如何设置变量
$VAL1
$VAL2
?目前,无法重现您的问题。它是使用IFS=,read-r VAL1 VAL2#echo语句进行参数扩展时从文件中读取的,看起来您是bash。如果不正确,您可以删除它。您的结果与代码不匹配;
Value1:
和实际值之间没有空格。如何设置变量
$VAL1
$VAL2
?目前,无法重现您的问题。它是使用IFS=,read-r VAL1 VAL2#echo语句进行参数扩展时从文件中读取的,看起来您是bash。如果不正确,您可以删除它。您的结果与代码不匹配;
Value1:
和实际值之间没有空格。一个影响因素是您在别处覆盖了
IFS
。如果你没有,这将是不必要的(没有这个细节,不可能复制)。这可能是事实,但鉴于他发布的代码,没有办法告诉你。
$VAL1
的非引号扩展中的换行符将作为空格删除。或者,如果您不想修改VAL1,可以在使用点删除:
echo“>$(日期):Value1:${VAL1//$'\n'}Value2:$VAL2”>“$RES_FILE”
一个促成因素是您在别处重写了
IFS
。如果你没有,这将是不必要的(没有这个细节,不可能复制)。这可能是事实,但鉴于他发布的代码,没有办法告诉你。非引号扩展的
$VAL1
中的换行符将作为空格删除。或者,如果您不想修改VAL1,可以在使用点删除:
echo“>$(日期):Value1:${VAL1//$'\n'}Value2:$VAL2”>“$RES\u FILE”