a bash “shift” parancs megváltoztatja az argumentumszámot: $ # “

Amikor a bash shift parancsot használom, megváltoztatja ez az argumentumszámot a $# fájlban?

A szerző megjegyzése: Amikor feltettem ezt a kérdést, még nem találtam meg (ebben a közösségben). Ezért egyszerűen kipróbáltam, és megkaptam a választ. Mivel úgy gondoltam, hogy ez másoknak is segíthet, itt feltettem, amit tanultam önmegválaszolt kérdés .

Válasz

Igen, igen, erre kifejezetten szükség van a szabványban :

shift [n] Az 1. pozíció paraméterhez hozzá kell rendelni az (1 + n), […] paraméter értékét, és a “#” paraméter frissül, hogy tükrözze az új pozíciószámot paraméterek.

Fontolja meg ezt a szkriptet:

#!/usr/bin/env bash echo "$#" shift echo "$#" 

Hívás így: script-file first second third kinyomtatja 3, majd 2.

Ez azt jelenti, hogy megtehetjük például:

#!/usr/bin/env bash while [[ "$#" > 0 ]] ; do echo "$1" shift done 

… amelyek egyesével kinyomtatják az argumentumokat a saját sorukra.

Megjegyzések

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük