我需要刪除日期返回中的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' –