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: