[英]how to print the day of the month(mon,tue) after the date entered by user using Shell Scripting?
[英]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.