Как нарезать массив в Bash

Это - ярлык вместо звонка библиотеки, который я пропустил, но это находится в духе потока.

Один ярлык, что я использую много, использует встроенный оператор формата в вызовах NSLog.


NSLog(@"x=%@", [someobject className]);

вместо более подробного


NSLog([NSString stringWithFormat:@"x=%@", [someobject classname]]);
170
задан codeforester 6 June 2018 в 22:56
поделиться

1 ответ

См. Раздел Расширение параметров на странице Bash man . A [@] возвращает содержимое массива, : 1: 2 берет отрезок длины 2, начиная с индекса 1.

A=( foo bar "a  b c" 42 )
B=("${A[@]:1:2}")
C=("${A[@]:1}")       # slice to the end of the array
echo "${B[@]}"        # bar a  b c
echo "${B[1]}"        # a  b c
echo "${C[@]}"        # bar a  b c 42
echo "${C[@]: -2:2}"  # a  b c 42 # The space before the - is necesssary

Обратите внимание, что тот факт, что "ab c "- один элемент массива (и что он содержит лишнее пространство) сохраняется.

268
ответ дан 23 November 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: