Yritän ymmärtää tätä koodia:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
En ole varma mitä -f tarkoittaa tarkalleen.
Vastaa
Tarkastettava asiaankuuluva man-sivu on itse kuoren sivu, bash
, koska -f
on kuoren tarjoama toiminto, se on sisäänrakennettu.
Järjestelmässäni (CentOS 7), hieno mies -sivu kattaa sen. grep
ei välttämättä tuota samoja tuloksia muissa jakeluissa. Jos kuitenkin suoritat man bash
ja etsit sitten ”-f”, sen pitäisi antaa tarvitsemasi tulokset.
$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $
vastaus
Lyhyesti sanottuna koodikappale lähtee /etc/bashrc
-tiedoston, jos sellainen on, ja olemassaolo varmistetaan komennolla [
, jolla -f
on operaattori / parametri.
if...then...else...fi
-käsky komentosarjan komentosarjassa arvioi komentojen poistumistilan – 0 onnistumisesta Joten on asianmukaista tehdä jotain tällaista:
if ping -c 4 google.com; then echo "We have a connection!" fi
Komento on sinun tapauksessasi [
joka tunnetaan myös nimellä test
-komento. Joten se on täysin kelvollinen tehdä
if test -f /etc/bashrc; then . /etc/bashrc fi
-f lippu tarkistaa kaksi asiaa: annettu polku on olemassa ja se on säännöllinen tiedosto. Jos /etc/bashrc
on itse asiassa hakemisto tai puuttuu, testin pitäisi palauttaa nollan ulkopuolinen poistumistila signaalin epäonnistumiseen
Tämä komento oli alun perin erillinen komento, joka ei ole osa shellin sisäänrakennettuja komentoja. Nykyään useimmilla Bourne-tyyppisillä kuoreilla on se sisäänrakennettuna, ja sitä shell käyttää.
Sivuhuomautuksessa /etc/bashrc
näyttää tarpeettomalta ylitiedostolta, jota järjestelmänvalvojasi tai koodinpätkän alkuperäinen kirjoittaja käyttää. On olemassa /etc/bash.bashrc
, joka on tarkoitettu koko järjestelmän kattavaksi rc-tiedostoksi bashille, joten sitä voidaan odottaa käyttävän.
Katso myös: