每當我在 bash CLI 中運行命令時,我都會得到正確的輸出
date %Y%-m%d%j%M%S
202111063103528
但是,當我在 bash 腳本中運行它時,我沒有得到一個可以在以后的變數中使用的簡單數字。我最終想用它來備份我生成的舊 CSV 檔案。例如
#Doesn't print out correct date
DATE='date %Y%-m%d%j%M%S'
echo $DATE
# Ultimately, wanting to feed that $DATE string here
if [ -f "$CSV_OUTFILE" ]; then
echo "CSV file already exists. Renaming $CSV_OUTFILE to $CSV_OUTFILE.$DATE"
mv $CSV_OUTFILE $CSV_OUTFILE.$DATE
exit 1
fi
關于我做錯了什么的任何建議?
uj5u.com熱心網友回復:
您將字串分配date %Y%-m%d%j%M%S給$DATE. 它包含一個空格,因此使用不帶雙引號的$DATEinmv會將其擴展為兩個單詞。
使用反引號代替引號來捕獲命令的輸出:
DATE=`date %Y%-m%d%j%M%S`
或者,更好地使用$(...)語法(更好,因為它可以嵌套):
DATE=$(date %Y%-m%d%j%M%S)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/351467.html
標籤:猛击 日期 乌本图 脚本 gnu-coreutils
上一篇:CSS問題,選中狀態不會改變樣式
