Cú pháp để lấy tên tháng hiện tại (ví dụ jan hoặc feb) trong bash
tập lệnh là gì?
Cú pháp để lấy tên tháng hiện tại (ví dụ jan hoặc feb) trong bash
tập lệnh là gì?
Câu trả lời:
Bạn có thể sử dụng date(1)
lệnh.
Ví dụ:
date +%b
currentmonthname=$(LANG=en_us_88591; date "+%B");
để lấy tên tháng tiếng Anh
currentmonthname=$(LC_ALL=C date +%B)
. Cách tiếp cận của bạn sẽ chỉ hoạt động nếu $LANG
đã có trong môi trường và LC_ALL
chưa được đặt và en_us_88591
là một ngôn ngữ hiện có trên hệ thống của bạn với tên tháng tiếng Anh của Hoa Kỳ hoặc (nhiều khả năng) nó không tồn tại trong trường hợp đó sẽ mặc định là C / POSIX miền địa phương nơi tên tháng bằng tiếng Anh.
Các strftime(3)
tay ( man 3 strftime
), nếu được cài đặt trên hệ thống của bạn, sẽ liệt kê tất cả các chuỗi định dạng có thể được sử dụng với các date
tiện ích hoặc các %(...)T
chuỗi định dạng với printf
. Hướng dẫn của date
lệnh cũng có thể chứa các chuỗi định dạng được hỗ trợ.
Để sử dụng một trong số chúng, ví dụ %b
("tên tháng viết tắt của miền địa phương.") Hoặc %B
("tên tháng đầy đủ của miền địa phương"), bạn sử dụng +
tùy chọn cho date
:
$ date +%B
December
$ date +%b
Dec
$ date +'%B is abbreviated as "%b"'
December is abbreviated as "Dec"
Hoặc, với printf
(trong ksh93
hoặc bash
4.3+):
$ printf '%(%B)T\n'
December
$ printf '%(%b)T\n'
Dec
$ printf '%(%B is abbreviated as "%b")T\n'
December is abbreviated as "Dec"
Để có được một tháng viết tắt bash
thấp hơn (nếu ngôn ngữ của bạn không phải lúc nào cũng cung cấp tên chữ thường của tháng):
$ month=$( date +%b )
$ printf 'It is %s\n' "${month,,}"
It is dec
Việc mở rộng tham số ${parameter,,pattern}
sẽ sửa đổi trường hợp của $parameter
bất cứ nơi nào pattern
phù hợp. Trong ${m,,}
, mô hình khớp với mọi nơi, vì vậy toàn bộ chuỗi trong $m
được đặt thấp hơn.
Hoặc như trong ksh
, khai báo biến là chữ thường trước với:
typeset -l month
Với bash
's printf
, bạn có thể tự động chèn chuỗi được tạo ra trong một variable¹ vô hướng sử dụng -v
:
$ printf -v month '%(%b)T'
$ printf 'It is %s\n' "${month,,}"
It is dec
Hoặc phần tử của khóa 0
của một mảng hoặc biến mảng kết hợp
man date
cho tất cả các tùy chọn định dạng.