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 первый второй третий первый второй третий