Cosa -x
significa qui:
if [ -x /etc/rc.local ] then
Come posso trovare questa pagina di manuale per if
?
help if
?
Cosa -x
significa qui:
if [ -x /etc/rc.local ] then
Come posso trovare questa pagina di manuale per if
?
help if
?
Risposte:
Dalle man bash
pagine (in particolare la sezione EXPRESSIONS CONDIZIONATE):
-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, non stai invocando il test
binario. Stai, invece, invocando l'integrato di bash test
, che contiene documentazione help test
, tra l'altro. man test
potrebbe essere fuorviante in alcuni casi per tale motivo.
if
è di per sé una parola chiave shell, quindi puoi trovare informazioni al riguardo con help if
. if
esso stesso si ramifica solo se il comando successivo restituisce true (0) o false (non zero). Quello che vuoi davvero, però, è man [
o man test
, dove [
è un alias per test
. Quell'affermazione è in realtà in esecuzione test -x /etc/rc.local
, che verifica se quel file esiste ed è eseguibile (o ha il permesso di ricerca).
man [
funziona anche.
if
non è la shell incorporata è la sua parola chiave shell. Esegui questo comando type if
per verificarlo.
Da info test
:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
È necessaria l'autorizzazione di esecuzione su una directory per poterlo inserire in cd (ovvero, per rendere una directory la directory di lavoro corrente).
È necessario eseguire su una directory per accedere alle informazioni "inode" dei file all'interno. È necessario questo per cercare una directory per leggere gli inode dei file all'interno. Per questo motivo l'autorizzazione di esecuzione su una directory viene spesso chiamata autorizzazione di ricerca.