Программное обеспечение для публикации журналов с поддержкой RTL

В CentOS, вероятно, есть Bash, поэтому, если вы можете его использовать, вы можете запустить срез массива:

for x in "${@:1:$# - 1}" ; do 
    echo do something with "$x"
done

Обозначение ${@:n:m}принимает позиционные параметры m, начиная с номера n. Мы берем их общее количество из $#и уменьшаем на единицу, чтобы игнорировать последний параметр. Смещение и длина берутся как арифметические выражения, как в $((...)), так что мы можем сделать арифметику прямо здесь, как Стефан прокомментировал ниже. Индексы массива обычно начинаются с нуля, но в случае $@, начиная с нуля, будет введено имя оболочки из $0, а это не то, что нам нужно.

Обратите внимание, что вы, скорее всего, захотите заключить выражения $@или ${@:n:m}в кавычки, чтобы предотвратить дальнейшее разделение ваших аргументов.

2
22.12.2014, 18:04
0 ответов

Теги

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