我需要在日期返回时删除de \ n。
为什么这样做?
NAME=$(date +"%Y-%m-%d" | tr -d "\n")
这不是
NAME=date +"%Y-%m-%d"
NAME2=$(echo $NAME | tr -d "\n")
答案 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")