Logo projektu bash

Instrukcja shift pozwala usunąć podany do skryptu z linii komend parametr.

Składnia instrukcji shift

shift liczba_parametrów

Parametr liczba parametrów

Parametr liczba parametrów – określa ilość parametrów linii poleceń do usunięcia. Usuwanie zaczyna się od parametru $1. Parametr liczba parametrów jest opcjonalny jeżeli go nie określimy zostanie usunięty jeden parametr linii poleceń.

Przykład użycia instrukcji shift

#!/bin/bash
echo $1
shift
echo $1
shift 2
echo $1

Wynikiem wykonania skryptu z parametrami 1,2,3,4 będzie:

$ . polecenie_shift.sh 1 2 3 4
1
2
4

Jak widać pierwsze wywołanie instrukcji shift usuwa wartość pierwszego parametru (1) i przesuwa resztę parametrów o jeden w lewo. Wartość drugiego parametru ($2) jest przesuwana do pierwszego ($1), trzeciego ($3) do drugiego ($2) itd. Drugie wywołanie usuwa dwa kolejne parametry i wartość 4 zostaje zapisana w zmiennej $1.

Najczęściej instrukcja shift wykorzystywana do wykonywania jakiejś operacji w pętli (np. ) na wszystkich parametrach np. z pętlą while:

#!/bin/bash
while [ "$#" -gt "0" ] 
do
    echo $1
    shift
done