Was -x
heißt hier:
if [ -x /etc/rc.local ] then
Wie könnte ich diese Handbuchseite für herausfinden if
?
help if
?
Was -x
heißt hier:
if [ -x /etc/rc.local ] then
Wie könnte ich diese Handbuchseite für herausfinden if
?
help if
?
Antworten:
Von den man bash
Seiten (insbesondere dem Abschnitt "Bedingte Ausdrücke"):
-a file
True if file exists.
-b file
True if file exists and is a block special file.
-c file
True if file exists and is a character special file.
-d file
True if file exists and is a directory.
-e file
True if file exists.
-f file
True if file exists and is a regular file.
-g file
True if file exists and is set-group-id.
-h file
True if file exists and is a symbolic link.
-k file
True if file exists and its ``sticky'' bit is set.
-p file
True if file exists and is a named pipe (FIFO).
-r file
True if file exists and is readable.
-s file
True if file exists and has a size greater than zero.
-t fd True if file descriptor fd is open and refers to a terminal.
-u file
True if file exists and its set-user-id bit is set.
-w file
True if file exists and is writable.
-x file
True if file exists and is executable.
[...]
test
in bash aufrufen , rufen Sie nicht die test
Binärdatei auf. Sie rufen stattdessen test
bashs builtin auf, das unter anderem über Dokumentationen verfügt help 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 finden help if
. if
selbst verzweigt nur danach, ob der nächste Befehl wahr (0) oder falsch (nicht null) zurückgibt. Was Sie aber wirklich wollen, ist man [
oder man test
, wo [
ist ein Alias für test
. Diese Anweisung wird gerade ausgeführt. Dabei wird geprüft test -x /etc/rc.local
, ob diese Datei vorhanden und ausführbar ist (oder über die Suchberechtigung verfügt).
man [
funktioniert auch.
if
ist nicht in die Shell integriert. Führen Sie diesen Befehl aus type if
, um dies zu überprüfen.
Von info test
:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
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.