Dlaczego dodaje się "x" podczas porównywania łańcuchów znaków w skryptach SH ?
np. "x$1" = "x" ,lub "x$1" = "x-d"
|
4
|
|
|
|
|
5
|
Wskazanie "$string" może powodować błąd w niektórych wersjach basha gdy string jest pusty. Dlatego dodawany jest sztuczny znak aby tego uniknąć. EDIT: Dodaję źródło : Advanced Bash-Scripting Guide |
||
|
|
|
0
|
A możesz wkleić przykładowy kawałek kodu? Nie bardzo rozumiem co Ci się dodaje i gdzie. |
|||||
|
|
0
|
Na przykład taki kod:
|
||
|
|
|
2
|
Wynika to z "dynamicznego" charakteru basha. Dodanie x na początku wymusza porównywanie tekstowe, a nie numeryczne i pozwala uniknąć błędów jak napisał Gandi. |
|||||
|
|
-1
|
Można to zapisać bez doklejania "x" w ten sposób:
ale prawdę mówiąc lepiej zapisać parsowanie parametrów tak:
dzięki temu kolejność parametrów staje się dowolna i łatwo dodać następne opcje |
||||||
|