Próbuję zbudować kilka skryptów dla początkujących za pomocą bash. Chcę dowiedzieć się, ile dni pozostało od dzisiaj do końca roku, korzystając z programu daty.
Więc używam zmiennej, bieżąca data = $ (data +% j), aby uzyskać numer dnia, który mamy teraz.
Jeśli powtórzę $ bieżąca data , otrzymam wynik 024 , jak zwykle się spodziewam, ponieważ mamy 24 stycznia.
Więc 365-024 czasy w lewo. I oto moje zapytanie. Robiąc obliczenia, powiedzmy calc 365-024 Otrzymuję wartość 345 zamiast 341 .
Co jest nie tak? Ma to coś wspólnego z zero na froncie ( 0 24), prawda?
10#
np$((365-10#$current_date))
. Aby uzyskać dalszą dyskusję, zobacz to pytanie Przepełnienie stosu Skrypt Bash, nielegalny numer: 08