簡體   English   中英

如何在shell腳本中打印回顯語句中變量中保存的當前日期?

[英]How to print current date saved in a variable in an echo sentence for shell scripting?

以下是我得到的輸出以及我想要的輸出


$ date

Wed Apr 11 08:41:35 UTC 2018

$ DATE=date 

$ $DATE    

Wed Apr 11 08:41:43 UTC 2018         

$ echo 'TEST'           

TEST                       

$ echo 'Today is $DATE'    

Today is $DATE       

$ echo Today is $DATE   

Today is date  

->想要的輸出為: 今天是世界標准時間2018年4月11日星期三08:41:43

讓我們逐步分析您所做的事情。 在底部,我為您提供了幾種實現所需目標的方法。

一步步:

$ date
Wed Apr 11 08:41:35 UTC 2018

在這里,您剛剛執行了date命令。 僅此而已。

$ DATE=date
$ $DATE
Wed Apr 11 08:41:43 UTC 2018         

在這一部分中,您將單詞date存儲在變量DATE 接下來,將變量DATE作為命令執行。 作為DATE=date您基本上只執行date命令。

$ echo 'TEST'
TEST

您已在/dev/stdout上成功打印了單詞TEST

$ echo 'Today is $DATE'
Today is $DATE

從這里開始樂趣。 您嘗試以字符串形式打印DATE的內容。 但是,您使用單引號' 在單引號內,所有內容均按原樣保留,無一例外。 (請參見此處 。這說明了為什么沒有進行參數擴展,而您打印$DATE而不是date

$ echo Today is $DATE
Today is date

在這種情況下,正在進行參數擴展。 參數DATE包含單詞date ,這就是您所得到的。 沒有執行任何命令,因為這不是您要的。

那么我們如何實現所需的輸出呢?

您感興趣的是所謂的命令替換 可以使用$(command)`command`來實現命令替換。 Bash通過執行command並將命令替換替換為命令的標准輸出來執行這兩種形式的擴展,並刪除所有尾隨的換行符。 這給了我們以下選擇:

$ DATE=$(date)
$ echo "Today is $DATE"

要么

$ echo "Today is $(date)"

最后,您可以直接使用date命令:

$ date "+Today is %c"

在shell腳本中,如果要存儲命令的輸出,則必須先執行該命令,並且該命令應位於=符號的右側。 當命令執行到標准輸出時,將其輸出存儲到變量中。 現在看下面:

DATE=$(date)  or DATE=`date`

現在,在上面的代碼中,date命令將在=的右側執行,其標准輸出將存儲在變量DATE

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM