у меня есть следующие строки в Башестранного поведения при оценке пробелов в строке в Баше
pseed=" 0 0 0 45 46 78 99100" #there is 2 spaces between 2 zeros
Моей строка содержит число в каждом блоке 3 charachters. если число < 100, то число заполняется пробелами. И я хочу, чтобы извлечь все номера с общим форматом ${pseed:3*i:3}
, и я хочу использовать этот формат в цикле в то время как
, когда я хочу, чтобы отобразить первую 0 с:
$echo ${pseed:0:3}
0
я получаю 0
, как и ожидалось
, но когда я dsplay второй 0 с
$echo ${pseed:3:6}
0 0
я 0 0
и это неожиданно.
Что происходит?
Я заметил, что при отображении:
$pseed=" 0 0 0 0"
$echo $pseed
0 0 0 0
есть только один пробел между нулями.
Как избежать такого поведения в bash?
, как вы можете видеть, что моя строка содержит число в каждом блоке из 3 персонажей. если число <100, то число заполняется пробелами – MOHAMED
, и я хочу извлечь все числа с общим форматом '$ {pseed: 3 * i: 3 * i + 3}' и я хочу использовать этот формат через некоторое время loop – MOHAMED
В этом случае третий параметр всегда равен * 3 *: '$ {pseed: 3 * i: 3}'. Помните, что третий параметр - это длина, а не конечная позиция. – Phylogenesis