Was -x
heißt hier:
if [ -x /etc/rc.local ] then
Wie könnte ich diese Handbuchseite für herausfinden if
?
command-line
bash
Taymindis Woon
quelle
quelle
help if
?Antworten:
Von den
man bash
Seiten (insbesondere dem Abschnitt "Bedingte Ausdrücke"):quelle
test
in bash aufrufen , rufen Sie nicht dietest
Binärdatei auf. Sie rufen stattdessentest
bashs builtin auf, das unter anderem über Dokumentationen verfügthelp test
.man test
kann aus diesem Grund in einigen Fällen irreführend sein.if
selbst ist ein Shell-Schlüsselwort, mit dem Sie Informationen darüber findenhelp if
.if
selbst verzweigt nur danach, ob der nächste Befehl wahr (0) oder falsch (nicht null) zurückgibt. Was Sie aber wirklich wollen, istman [
oderman test
, wo[
ist ein Alias fürtest
. Diese Anweisung wird gerade ausgeführt. Dabei wird geprüfttest -x /etc/rc.local
, ob diese Datei vorhanden und ausführbar ist (oder über die Suchberechtigung verfügt).quelle
man [
funktioniert auch.if
ist nicht in die Shell integriert. Führen Sie diesen Befehl austype if
, um dies zu überprüfen.Von
info test
:Für ein Verzeichnis ist eine Ausführungsberechtigung erforderlich, um darin eine CD zu erstellen (d. H., Um ein Verzeichnis zu Ihrem aktuellen Arbeitsverzeichnis zu machen).
Execute ist für ein Verzeichnis erforderlich, um auf die "Inode" -Informationen der darin enthaltenen Dateien zuzugreifen. Sie benötigen dies, um ein Verzeichnis zu durchsuchen und die Inodes der darin enthaltenen Dateien zu lesen. Aus diesem Grund wird die Ausführungsberechtigung für ein Verzeichnis häufig als Suchberechtigung bezeichnet.
quelle