Linux. Команда shift
23.04.2018
Теги: Bash • CLI • Команда • Параметр • Переменная
Команда 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 первый второй третий первый второй третий