de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 user221744
user221744
Question

Jak inkrementować zmienną w bashu?

Próbowałem inkrementować zmienną numeryczną używając zarówno var=$var+1 jak i var=($var+1) bez powodzenia. Zmienna jest liczbą, choć bash wydaje się czytać ją jako łańcuch.

Bash w wersji 4.2.45(1)-release (x86_64-pc-linux-gnu) na Ubuntu 13.10.

623 2013-12-03T16:34:26+00:00 3
Elder Geek
Elder Geek
Edytowane pytanie 30. stycznia 2017 в 3:44
Ubuntu
bash
Popular videos
Kurs MySQL #1 | Obsługa bazy danych i podstawowe polecenia SQL
Kurs MySQL #1 | Obsługa bazy danych i podstawowe polecenia SQL
9 lat temu
LPES #05.1: Wprowadzenie do programowania w bash'u
LPES #05.1: Wprowadzenie do programowania w bash'u
1 rok temu
LPES #06.1: Podstawy C
LPES #06.1: Podstawy C
1 rok temu
Tutorial On How To Increment Variables In Bash
Tutorial On How To Increment Variables In Bash
4 lata temu
Ubuntu: How to increment a variable in bash?
Ubuntu: How to increment a variable in bash?
2 lata temu
Unix & Linux: How to increment local variable in Bash? (2 Solutions!!)
Unix & Linux: How to increment local variable in Bash? (2 Solutions!!)
1 rok temu
Kurs PHP - Lekcja 33: Przetwarzanie daty i czasu
Kurs PHP - Lekcja 33: Przetwarzanie daty i czasu
6 lat temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
Radu Rădeanu
Radu Rădeanu
3. grudnia 2013 в 4:39
2013-12-03T16:39:13+00:00
Więcej
Źródło
Edytuj
#38205123

Istnieje więcej niż jeden sposób na inkrementację zmiennej w bashu, ale to, czego próbowałeś, nie jest poprawne.

Możesz użyć na przykład rozszerzenia arytmetycznego:

var=$((var+1))
((var=var+1))
((var+=1))
((var++))

Możesz też użyć let:

let "var=var+1"
let "var+=1"
let "var++"

Zobacz także: http://tldp.org/LDP/abs/html/dblparens.html.

 wjandrea
wjandrea
Edytowana odpowiedź 14. czerwca 2017 в 8:30
The Double-Parentheses Construct
tldp.org
972
0
Paul Tanzini
Paul Tanzini
3. grudnia 2013 в 4:38
2013-12-03T16:38:03+00:00
Więcej
Źródło
Edytuj
#38205122
var=$((var + 1))

Arytmetyka w bashu używa składni $((...)).

Radu Rădeanu
Radu Rădeanu
Edytowana odpowiedź 3. grudnia 2013 в 4:40
163
0
 tphelican
tphelican
31. lipca 2015 в 5:15
2015-07-31T17:15:32+00:00
Więcej
Źródło
Edytuj
#38205124

Jest jeszcze to:

var=`expr $var + 1`

Zwróć uwagę na spacje, a także ` nie jest '.

Podczas gdy odpowiedzi Radu'a i komentarze są wyczerpujące i bardzo pomocne, są one specyficzne dla bash. Wiem, że pytałeś konkretnie o bash, ale pomyślałem, że I'd pipe in ponieważ znalazłem to pytanie, gdy szukałem zrobić to samo używając sh w busybox pod uCLinux. To przenośne poza bash.

18
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
365
Zarejestrowany 1 dzień temu
2
True Image
Zarejestrowany 1 dzień temu
3
archana agarwal
Zarejestrowany 3 dni temu
4
Maxim Zhilyaev
Zarejestrowany 6 dni temu
5
adambotsfford adambotsfford
Zarejestrowany 1 tydzień temu
BG
DE
EL
ES
FR
ID
IT
JA
KO
NL
PL
PT
RU
SK
ZH
© de-vraag 2022
Źródło
askubuntu.com
na podstawie licencji cc by-sa 3.0 z przypisaniem