Apakah Anda ingin memasukkan kode ini ke dalam skrip Anda, atau melakukannya dari proses yang memulai skrip?
Untuk yang terakhir, Anda dapat menggunakan kata cadangan "waktu" dan kemudian mengurai apa yang dikembalikan untuk mendapatkan berapa banyak waktu yang dibutuhkan skrip.
Jika Anda ingin melakukan ini dari dalam skrip, Anda dapat menyetel variabel SECONDS ke nol, dan setiap kali Anda mereferensikan variabel tersebut, variabel tersebut akan diperbarui menjadi jumlah detik yang berlalu. Jadi, Anda dapat meletakkan "SECONDS=0" di bagian paling awal skrip, dan kapan pun Anda membutuhkan waktu yang telah berlalu, itu akan berada di variabel SECONDS.
Anda juga dapat menggunakan trik $SECONDS pada baris perintah, misalnya:
$ SECONDS=0; sleep 5 ; echo "that took approximately $SECONDS seconds"
Kata cadangan waktu dan variabel SECONDS keduanya didokumentasikan di halaman manual bash.
Ini berfungsi di Bash, dan juga Zsh:
# Set time format to seconds
TIMEFORMAT=%R
# Time a process
PROC_TIME=$(time (insert command here >/dev/null 2>&1) 2>&1)
echo $PROC_TIME
- Dua pengalihan pertama menyembunyikan keluaran proses Anda ">/dev/null 2>&1"
- Pengalihan terakhir diperlukan karena "time" mencetak waktu di stderr