我需要删除日期返回中的de \ n。从变量中删除 n
为什么这样吗?
NAME=$(date +"%Y-%m-%d" | tr -d "\n")
,这是否在外壳不
NAME=date +"%Y-%m-%d"
NAME2=$(echo $NAME | tr -d "\n")
我需要删除日期返回中的de \ n。从变量中删除 n
为什么这样吗?
NAME=$(date +"%Y-%m-%d" | tr -d "\n")
,这是否在外壳不
NAME=date +"%Y-%m-%d"
NAME2=$(echo $NAME | tr -d "\n")
引用变量,并确保使用正确的命令替换语法:
NAME="$(date +'%Y-%m-%d')"
NAME2=$(echo "$NAME" | tr -d "\n")
好,但为什么我必须这样做?那是什么意思? – user3013172
教育自己 - '人tr'。 – agilob
@ user3013172:不引用shell会将您的赋值解释为2个不同的参数。 – anubhava
NAME=date +"%Y-%m-%d"
并不意味着分配的输出日期到NAME。它试图在其环境中运行名为+%Y-%m-%d
的变量NAME
。
为了捕捉你在你的第一个例子中使用$(..)
像输出:
NAME=$(date +"%Y-%m-%d")
还要注意,尾随换行符的命令扩展自动剥离。
你不需要显式地删除一个换行符:'$(...)'构造为你做。参见行动:'d = $(日期); printf“%s”“$ d”| od -c与'date | od -c' –