@chaos Nie edytuj pytania, aby lepiej pasowało do odpowiedzi ;-).
Pilot6
@ Pilot6 Nie zmieniłem znaczenia. Czy rozumiem coś złego? Sprawiłem, że lepiej jest znaleźć (tytuł) i jest bardziej czytelny. BTW : ma również inne znaczenie, na przykład jest to wbudowane polecenie bash. Chciałem się od tego różnić, ponieważ oczywiście nie chodzi o to. Użytkownik ma na :myśli operatora wewnątrz nazwy zmiennej. Przepraszam, nie chcę nikogo denerwować, ale wycofanie się nie ma sensu i powinno zostać odwrócone, ale nie chcę tutaj wojny edytorskiej. Co więcej, jest specyficzny dla bash i skryptów, więc po co usuwać te tagi?
chaos
Po wyjęciu TEMPi VARzmienne i zmienił kwestia sposobu, w jaki inne odpowiedzi stracił sens.
Pilot6
@ Pilot6 W mojej odpowiedzi nie odnoszę się do VARzmiennej. Ale możesz zmienić tę jedną rzecz z powrotem. Chciałem, aby pytanie było bardziej ogólne, mniej szczegółowe. Nigdy nie miało to na celu sabotowania innych odpowiedzi.
chaos
2
@ SnakeDoc nie, to w porządku na temat
mur
Odpowiedzi:
15
Jest to rozszerzenie zmienne i działa w ten sposób (zauważ, że jest to tylko bashi kshspecyficzne i nie będzie działać w powłoce POSIX):
:
ma również inne znaczenie, na przykład jest to wbudowane polecenie bash. Chciałem się od tego różnić, ponieważ oczywiście nie chodzi o to. Użytkownik ma na:
myśli operatora wewnątrz nazwy zmiennej. Przepraszam, nie chcę nikogo denerwować, ale wycofanie się nie ma sensu i powinno zostać odwrócone, ale nie chcę tutaj wojny edytorskiej. Co więcej, jest specyficzny dla bash i skryptów, więc po co usuwać te tagi?TEMP
iVAR
zmienne i zmienił kwestia sposobu, w jaki inne odpowiedzi stracił sens.VAR
zmiennej. Ale możesz zmienić tę jedną rzecz z powrotem. Chciałem, aby pytanie było bardziej ogólne, mniej szczegółowe. Nigdy nie miało to na celu sabotowania innych odpowiedzi.Odpowiedzi:
Jest to rozszerzenie zmienne i działa w ten sposób (zauważ, że jest to tylko
bash
iksh
specyficzne i nie będzie działać w powłoce POSIX):${var:pos}
oznacza, że zmiennavar
jest rozwijana, zaczynając od przesunięciapos
.${var:pos:len}
oznacza, że zmiennavar
jest rozwijana, zaczynając od przesunięciapos
o długośćlen
.źródło
zsh
teżzsh
=) Zrobiłem skrypt dietyzsh
i zrzuciłem 10 kg w ciągu 1 tygodnia.zsh
na pewno sprawia, że głupsze jest pisanie ścieżek, kiedy się jej nie używa :)w bash odcina pierwsze 3 znaki zmiennej (string):
spójrz na „ekstrakcję podciągów” tutaj: http://www.tldp.org/LDP/abs/html/string-manipulation.html .
źródło
Ten operator odcina pierwsze 3 znaki zmiennej,
TEMP
a resztę przypisuje do zmiennejVAR
.źródło