Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题

Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题

echo $ret 和 echo "$ret" 区别:
如果是echo $ret,输出结果为一行,没有换行符
如果是echo "$ret",输出结果为多行,有换行符

# vim test.sh

#!/bin/sh


CORE_DIR=`pwd`
UI_DIR=$CORE_DIR/../tomcat8


target=$UI_DIR/webapps/ui/META-INF/MANIFEST.MF
newline=$'\n'
newline2=$newline$newline
ret="$newline============ ui Timestamp ===========$newline2"


if [ -e $target ]; then
  ret+="$(cat $target | sed -n '/Timestamp/p' )"
else
  ret+="File or directory not found."
fi
ret+="$newline2"


ret+="$newline============ core Timestamp ===========$newline2"
now=`date -I`
target_core=$CORE_DIR/logs/$now\.0\.log


if [ -e $target_core ]; then
  ret+="$(grep Timestamp $target_core | sed -n '/Timestamp/p' | sed s'/\ \ \ \ //' | sed s'/"//g')"
else
  ret+="core log file or directory not found."
fi
  ret+=$newline


#echo $ret
echo "$ret"


你可能感兴趣的:(Linux,常见问题)