2013-08-05 18 views
7

我正在嘗試計算bash腳本中動態前幾天的日期。在bash腳本中獲取X日前的日期,使用參數變量

這是我做了什麼 -

#!/bin/bash 
STAMP=`date --date='$1 day ago' +%y%m%d` 

但運行myscript 2時,它說 -

date: invalid date `$1 day ago' 

我怎麼能這個公式中使用我的參數值?

回答

13

它的工作原理,如果「被替換爲「插入腳本命令 -

STAMP=`date --date="$1 day ago" +%y%m%d` 

線索是兩個不同的字符'和」錯誤響應使用 -

date: invalid date `$1 day ago' 

的(不是我)可以解釋爲什麼會發生這種情況

3

這是因爲變量替換不會發生在單引號中,即'$1'不會擴大,但"$1"會。

因此,說

STAMP=`date --date="$1 day ago" +%y%m%d` 

STAMP=$(date --date="$1 day ago" +%y%m%d) 

會工作。