sh Linux 中的 Undersired echo truncate
Undersired echo truncate in sh Linux
我想将两个变量作为输入发送到 shell 脚本中的另一个命令。我已经尝试了很多方法来发送这两个变量,但是我在使用 echo 命令时遇到了意想不到的问题。
#!/bin/sh
echo $DATE_NOW1
Feb 17 2016
echo $HOURS1
13:06:47
echo "$DATE_NOW1 $HOURS1"
output : 13:06:4716
上面的字符串意外被截断 output.i 从文件读取后正在获取变量。(例如:HOURS1=cat time_now |cut -d '.' -f 1
)
我尝试了其他方法,例如 foo="$date_now $hours" 和 foo "${date_now}${hours}" 但仍然没有用。
谁能指出我哪里错了?
您的变量 DATE_NOW1 以 \r 字符结尾。由于 echo
总是以 \n 结束显示,因此 echo $DATE_NOW1
效果很好(实际上显示 Feb 17 2016\r\n
)。但是当你连接时,echo
显示这个字符串:
Feb 17 2016\r13:06:47\r\n
尝试去掉尾部\r,或者在DATE_NOW1
末尾加一个\n
#!/bin/sh
DATE_NOW1="Feb 17 2016"
HOURS1=13:06:47
echo "$DATE_NOW1 $HOURS1"
您必须使用引号,因为有空格。
我想将两个变量作为输入发送到 shell 脚本中的另一个命令。我已经尝试了很多方法来发送这两个变量,但是我在使用 echo 命令时遇到了意想不到的问题。
#!/bin/sh
echo $DATE_NOW1
Feb 17 2016
echo $HOURS1
13:06:47
echo "$DATE_NOW1 $HOURS1"
output : 13:06:4716
上面的字符串意外被截断 output.i 从文件读取后正在获取变量。(例如:HOURS1=cat time_now |cut -d '.' -f 1
)
我尝试了其他方法,例如 foo="$date_now $hours" 和 foo "${date_now}${hours}" 但仍然没有用。
谁能指出我哪里错了?
您的变量 DATE_NOW1 以 \r 字符结尾。由于 echo
总是以 \n 结束显示,因此 echo $DATE_NOW1
效果很好(实际上显示 Feb 17 2016\r\n
)。但是当你连接时,echo
显示这个字符串:
Feb 17 2016\r13:06:47\r\n
尝试去掉尾部\r,或者在DATE_NOW1
#!/bin/sh
DATE_NOW1="Feb 17 2016"
HOURS1=13:06:47
echo "$DATE_NOW1 $HOURS1"
您必须使用引号,因为有空格。