Jawaban:
Ini cara untuk mengekspresikan waktu yang diformat printf
.
Formatnya adalah:
%(FORMAT)T
Di mana FORMAT
didefinisikan oleh strftime(3)
.
Jadi untuk mendapatkan waktu jaman (Waktu dalam detik sejak 1970-01-01 00:00:00 UTC), kita perlu strftime(3)
format %s
:
printf "%(%s)T\n"
Perhatikan bahwa \n
pada akhirnya Anda perlu menambahkan baris baru karena printf
(tidak seperti echo
) tidak menambahkannya secara default.
Contoh:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
Hanya demi kelengkapan, Anda juga dapat menggunakan date
perintah dengan strftime(3)
cara yang diformat serupa untuk mendapatkan waktu:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
CATATAN : Perilaku ini khusus untuk bash
's dan ksh
' s built-in fungsi printf
, dan tidak bekerja dengan /usr/bin/printf
, csh
dan zsh
built-in.
printf(1)
halaman manual.
printf
adalah builtin di sini (meskipun yang eksternal memiliki perilaku yang sama) .. periksa help printf
..
printf
seorang builtin?/usr/bin/printf
pada Ubuntu 14.04 memberikan kesalahan:printf: %(: invalid conversion specification
. Jika Anda menggunakanbash
. Cobaman bash
untuk dokumentasi bawaan.