Yanıtlar:
Biçimlendirilmiş zamanı şu şekilde ifade etmenin bir yoludur printf.
Biçim:
%(FORMAT)T
Nerede FORMATtarafından tanımlanır strftime(3).
Bu nedenle, çağın zamanını almak için (1970-01-01 00:00:00 UTC'den bu yana saniye cinsinden süre), strftime(3)biçime ihtiyacımız var %s:
printf "%(%s)T\n"
Not Ayrıca gerektiğini \nolarak bir yeni satır eklemek için sonunda printf(aksine echovarsayılan olarak eklenmiş olmaz).
Misal:
$ 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
Tamlık uğruna , zamanı almak için datekomutu benzer strftime(3)şekilde biçimlendirilmiş bir şekilde de kullanabilirsiniz :
$ 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
NOT : Bu davranış özgüdür bash'ın ve ksh' yerleşik s fonksiyonu printfve birlikte çalışmayı değil /usr/bin/printf, cshve zshyerleşik ins.
printf(1)Adam sayfasında görmedim .
printfburada yerleşik bir yapıdır (harici davranış aynı davranışa sahip olmasına rağmen) .. kontrol edin help printf..
printfbir yerleşik misin?/usr/bin/printfUbuntu 14.04 üzerinde bir hata veriyor:printf: %(: invalid conversion specification. Eğer kullanıyorsanızbash.man bashYerleşik belgeleri deneyin .