Saya punya ini:
date +"%H hours and %M minutes"
Saya menggunakan festival untuk mengatakannya.. tapi tertulis seperti:"nol sembilan jam".. Saya ingin mengatakan "sembilan jam"!
tapi tanggal selalu memberi saya 09… jadi saya ingin tahu apakah bash dapat dengan mudah membuatnya menjadi hanya 9?
dalam skrip kompleks saya mencoba seperti
printf %d 09
tapi gagal.. bukan oktal
ada ide?
Jawaban yang Diterima:
-
Dalam kasus Anda, Anda cukup menonaktifkan padding nol dengan menambahkan
-
setelah%
dalam format string tanggal:%-H
Secara default, bidang numerik bantalan tanggal dengan nol. Bendera opsional berikut mungkin mengikuti '%':
-
(tanda hubung) jangan mengisi bidang_
(garis bawah) pad dengan spasi(nol) pad dengan nol
^
gunakan huruf besar jika memungkinkan#
gunakan kasus sebaliknya jika memungkinkan
Lihat manual tanggal
-
Jika Anda ingin menafsirkan nomor di basis yang berbeda, di bash
- Konstanta dengan awalan 0 ditafsirkan sebagai bilangan oktal.
- A 0x atau 0X di depan menunjukkan heksadesimal.
- Jika tidak, bilangan berbentuk [basis#]n, dengan basis adalah bilangan desimal antara 2 dan 64 yang mewakili basis aritmatika, dan n adalah bilangan pada basis tersebut
Jadi, untuk menafsirkan angka sebagai desimal, gunakan
10#n
bentuk, misalnya10#09
echo $((10#09*2)) 18
Lihat bagian Evaluasi Aritmatika dari bash manual.