Tôi đang sử dụng dưới đây để có được trước đây, hiện tại và vào tháng tới dưới Ubuntu
11.04:Sử dụng `date` lệnh để có được trước đây, hiện tại và tiếp theo tháng
LAST_MONTH=`date +'%m' -d 'last month'`
NEXT_MONTH=`date +'%m' -d 'next month'`
THIS_MONTH=`date +'%m' -d 'now'`
Nó hoạt động tốt cho đến ngày hôm nay, ngày cuối cùng của Tháng Mười, 2012 (2012/10/31)
tôi nhận được bên dưới kết quả như bây giờ:
$ date
Wed Oct 31 15:35:26 PDT 2012
$ date +'%m' -d 'last month'
10
$ date +'%m' -d 'now'
10
$ $ date +'%m' -d 'next month'
12
tôi cho rằng kết quả đầu ra nên 9
, 10
, 0.123.tương ứng.
Không hiểu tại sao date
kết quả đầu ra hoạt động như thế này. Điều gì sẽ là một cách tốt để có được thống nhất previous
, current
và next
tháng thay thế?
Bạn không thể lấy tháng cho 'now' và sau đó cộng hoặc trừ 1? –
Cảm ơn. Tôi hiểu công trình này cung cấp cho bạn chăm sóc 'Dec + 1 = Jan' vv Câu hỏi của tôi là lý do tại sao ở trên không hoạt động. – greeness
Bạn có thể hiểu rõ hơn bằng cách in ngày đầy đủ được tính cho "tháng trước" và "tháng tiếp theo". Tôi không có một thiết bị đầu cuối unix ngay bây giờ, nhưng tôi đoán là nó chỉ thêm/trừ 30 ngày đến/từ 'now'. –