Saya mencoba menggunakan $(date)
dalam bash shell script, namun saya ingin upload di YYYY-MM-DD format. Bagaimana saya bisa mendapatkan ini?
Di bash (>=4.2) adalah lebih baik untuk menggunakan printf's built-in tanggal formatter (bagian dari bash) daripada eksternal tanggal
(biasanya GRATIS tanggal).
Seperti:
# put current date as yyyy-mm-dd in $date
# -1 -> explicit current date, bash >=4.3 defaults to current time if not provided
# -2 -> start time for shell
printf -v date '%(%Y-%m-%d)T\n' -1
# put current date as yyyy-mm-dd HH:MM:SS in $date
printf -v date '%(%Y-%m-%d %H:%M:%S)T\n' -1
# to print directly remove -v flag, as such:
printf '%(%Y-%m-%d)T\n' -1
# -> current date printed to terminal
Di bash (<4.2):
# put current date as yyyy-mm-dd in $date
date=$(date '+%Y-%m-%d')
# put current date as yyyy-mm-dd HH:MM:SS in $date
date=$(date '+%Y-%m-%d %H:%M:%S')
# print current date directly
echo $(date '+%Y-%m-%d')
Lainnya format tanggal yang tersedia dapat dilihat dari tanggal halaman man (untuk eksternal non-bash perintah tertentu):
man date
Anda'kembali mencari ISO 8601 standar format tanggal, jadi jika anda memiliki GNU tanggal (atau setiap tanggal perintah yang lebih modern dari tahun 1988) hanya melakukan: $(tanggal-I)
Dengan baru-baru Bash (versi ≥ 4.2), anda dapat menggunakan built-in printf
dengan format pengubah %(strftime_format)T
:
$ printf '%(%Y-%m-%d)T\n' -1 # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1 # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1 # Capture as var $date
printf
adalah jauh lebih cepat dari tanggal
karena itu's Bash builtin sementara tanggal
adalah perintah eksternal.
Dan juga, printf -v tanggal ...
lebih cepat dari tanggal=$(printf ...)
sejak itu doesn't membutuhkan forking subkulit.
#!/bin/bash -e
x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"
echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c
Berikut ini x adalah sampel saat digunakan & kemudian menampilkan contoh baik format data serta mendapatkan tanggal 10 menit lebih kemudian tanggal saat ini.
Anda dapat mengatur tanggal sebagai variabel lingkungan dan kemudian anda dapat menggunakannya
setenv DATE `date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"
atau
DATE =`date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"