Mit jelent a -f egy bash szkript if-utasításában?

Megpróbálja megérteni ezt a kóddarabot:

if [ -f /etc/bashrc ]; then . /etc/bashrc fi 

Nem vagyok biztos benne mit jelent az -f pontosan.

Válasz

Ennek ellenőrzésére a megfelelő man oldal a héj oldala, bash, mert a -f olyan funkció, amelyet a héj nyújt, be van építve.

A rendszeremen (CentOS 7), a finom ember oldal borítja. Előfordulhat, hogy a grep nem ugyanazokat az eredményeket adja más elosztásokon. Mindazonáltal, ha a man bash fájlt futtatja, majd a “-f” kifejezésre keresi, akkor a kívánt eredményt adja meg.

$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $ 

Válasz

Röviden: a kódrészlet /etc/bashrc fájlt fog forrni, ha létezik, és a a létezést a [ paranccsal ellenőrizzük, amelynek -f operátor / paraméter.

if...then...else...fi utasítás a shell parancsfájlokban értékeli a parancsok kilépési állapotát – 0 a sikeren. Tehát helyénvaló ilyesmit csinálni:

if ping -c 4 google.com; then echo "We have a connection!" fi 

A parancs az Ön esetében [ amelyet test parancsnak is neveznek. Tehát “tökéletesen érvényes lehet

if test -f /etc/bashrc; then . /etc/bashrc fi 

A -f A flag két dolgot igazol: a megadott elérési út létezik, és rendes fájl. Ha az /etc/bashrc valójában könyvtár vagy hiányzik, akkor a tesztnek nullától eltérő kilépési állapotot kell adnia a jelzés meghibásodásához.

Ez a parancs eredetileg külön parancs volt, ami nem A shell beépített parancsainak része. Manapság a legtöbb Bourne-szerű héj beépítettként használja, és ezt fogja használni a shell.

Megjegyzendő, hogy az /etc/bashrc felesleges fájlnak tűnik, amelyet az adminisztrátor vagy a kódrészlet eredeti szerzője használ. Létezik /etc/bash.bashrc, amelyet egész rendszerre kiterjedő rc-fájlként szánnak a bash számára, ezért elvárható, hogy ezt használják.

Lásd még:

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