Linux. Команда shift

23.04.2018

Теги: BashCLIКомандаПараметрПеременная

Команда shift позволяет смещать влево позиционные параметры. После выполнения команды предыдущее значение позиционного параметра $2 будет присвоено позиционному параметру $1, а предыдущее значение позиционного параметра $3 — позиционному параметру $2 и т.д. В то же время прежнее значение позиционного параметра $1 будет безвозвратно утрачено.

При выполнении этой команды значение переменной $#, содержащей количество аргументов, также автоматически уменьшается на единицу:

#!/bin/bash
echo $# $*
shift
echo $# $*
shift
echo $# $*
shift
echo $# $*
$ ./test-shift.sh первый второй третий
3 первый второй третий
2 второй третий
1 третий
0
$ ./test-shift.sh
0
0
0
0

Смещение может быть произведено сразу на несколько позиций:

shift 3

Это дает такой же результат, как и выполнение трех команд shift подряд:

shift
shift
shift

Команда shift удобна для обработки переменного количества аргументов:

#!/bin/bash
while [ $# -ne 0 ] ; do
    echo "$1"
    shift
done
$ ./while-shift.sh первый второй третий
первый
второй
третий

Поиск: Bash • CLI • shift • Команда • Параметр • Переменная

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.