Próbuję pobrać przyrostek ciągu znaków w Bash, używając składni podła ${string:pos}
, ale nie mogę zrozumieć, dlaczego to nie zadziała. I udało się uprościć mój przykładowy kod do tego:Jak wziąć przyrostek ciągu w bash przy użyciu przesunięć ujemnych?
STRING="hello world"
POS=4
echo ${STRING:POS} # prints "o world"
echo ${STRING:4} # prints "o world"
POS=-4
echo ${STRING:POS} # prints "orld"
echo ${STRING:-4} # prints "hello world"
Pierwsze trzy linie działają dokładnie tak, jak bym się spodziewał, ale dlaczego końcowy druku linia "hello world"
zamiast "orld"
?
Dobrze , to uroczo niejednoznaczne. – qntm