Saya mencoba membuat variabel timestamp dalam skrip shell untuk membuat pencatatan sedikit lebih mudah. Saya ingin membuat variabel di awal skrip dan mencetaknya saat ini setiap kali saya menerbitkan echo $timestamp
. Terbukti lebih sulit dari yang saya kira. Inilah beberapa hal yang saya coba:
timestamp="(date +"%T")"
cetakan gema (date +"%T")
timestamp="$(date +"%T")"
echo mencetak waktu ketika variabel diinisialisasi.
Hal lain yang saya coba hanyalah sedikit variasi yang tidak bekerja lebih baik. Adakah yang tahu bagaimana mencapai apa yang saya coba lakukan?
echo "$(timestamp): something happened"
.date +"%Y-%m-%d_%H-%M-%S"
Jika Anda ingin mendapatkan cap waktu unix, maka Anda perlu menggunakan:
%T
akan memberi Anda waktu saja; sama dengan%H:%M:%S
(via http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/ )sumber
date
. Namun, saya juga mengangkat jawaban yang "benar". Saya tidak mencari itu, tapi itu jawaban yang lebih baik untuk pertanyaan asli dan juga sangat berguna bagi saya.sumber
echo $(date +"%Y-%m-%dT%T.%3N%z")
Namun ini saya tidak bisa berfungsi di terminal Mac. Cara melakukan hal yang sama di Mac. Terima kasihFormat ISO 8601 (
2018-12-23T12:34:56
) lebih mudah dibaca daripada cap waktu UNIX. Namun pada beberapa OS Anda tidak dapat memiliki:
dalam nama file. Karena itu saya sarankan menggunakan sesuatu seperti ini sebagai gantinya:Anda dapat menggunakan perintah berikut untuk mendapatkan cap waktu dalam format ini:
Ini adalah format yang saya lihat digunakan banyak aplikasi. Satu hal yang menyenangkan tentang ini adalah bahwa jika nama file Anda mulai dengan ini, Anda dapat mengurutkannya berdasarkan abjad dan akan diurutkan berdasarkan tanggal.
sumber
TZ=UTC date +...
dapat menjadikan ini lebih portabel dengan menggunakan stempel waktu UTCSaya menggunakan ubuntu 14.04.
Seharusnya cara yang benar dalam sistem saya
date +%s
.Outputnya
date +%T
seperti12:25:25
.sumber
Gunakan substitusi perintah:
sumber
Kamu bisa menggunakan
Ini memberikan dalam format
2014-02-01 15:12:35-05:00
Karakter back-tick (
`
) akan menyebabkan apa yang ada di antara mereka dievaluasi dan hasilnya dimasukkan dalam baris.date --help
memiliki opsi lain.sumber
touch $timestamp
akan menghasilkan dua file.Versi terbaru dari
bash
tidak memerlukan panggilan ke program eksternaldate
:%(...)T
menggunakan argumen yang sesuai sebagai cap waktu UNIX, dan memformatnya sesuai denganstrftime
format-style di antara tanda kurung. Argumen-1
korespondensi dengan waktu saat ini, dan ketika tidak ada ambiguitas yang terjadi dapat dihilangkan.sumber
Dan untuk sesama orang Eropa, coba gunakan ini:
akan memberikan format format: "15-02-2020_19-21-58"
Anda memanggil variabel dan mendapatkan representasi string seperti ini
sumber
srand tanpa nilai menggunakan cap waktu saat ini dengan sebagian besar implementasi Awk.
sumber