Cosa -xsignifica qui:
if [ -x /etc/rc.local ] then
Come posso trovare questa pagina di manuale per if?
help if?
Cosa -xsignifica qui:
if [ -x /etc/rc.local ] then
Come posso trovare questa pagina di manuale per if?
help if?
Risposte:
Dalle man bashpagine (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.
[...]
testin bash, non stai invocando il testbinario. Stai, invece, invocando l'integrato di bash test, che contiene documentazione help test, tra l'altro. man testpotrebbe 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. ifesso 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.
ifnon è la shell incorporata è la sua parola chiave shell. Esegui questo comando type ifper 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.