从变量中删除\ n

时间:2014-04-24 19:29:56

标签: bash date unix

我需要在日期返回时删除de \ n。

为什么这样做?

     NAME=$(date +"%Y-%m-%d" | tr -d "\n")

这不是

     NAME=date +"%Y-%m-%d"
     NAME2=$(echo $NAME | tr -d "\n")  

2 个答案:

答案 0 :(得分:4)

NAME=date +"%Y-%m-%d"并不意味着将日期输出分配给NAME。它尝试在其环境中运行名为+%Y-%m-%d且变量为NAME的命令。

要捕获输出,必须像第一个示例中那样使用$(..)

NAME=$(date +"%Y-%m-%d")

另请注意,尾随换行符会被命令扩展自动删除。

答案 1 :(得分:1)

引用shell中的变量并确保使用正确的命令替换语法:

NAME="$(date +'%Y-%m-%d')"
NAME2=$(echo "$NAME" | tr -d "\n")