Qué -xsignifica aquí:
if [ -x /etc/rc.local ] then
¿Cómo puedo encontrar esta página de manual if?
help if?
Qué -xsignifica aquí:
if [ -x /etc/rc.local ] then
¿Cómo puedo encontrar esta página de manual if?
help if?
Respuestas:
De las man bashpáginas (especialmente la sección EXPRESIONES CONDICIONALES):
-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.
[...]
testen bash, no estás invocando el testbinario. En cambio, estás invocando a bash testincorporado, que tiene documentación en help test, entre otros lugares. man testpuede ser engañoso en algunos casos por esa razón.
ifen sí es una palabra clave de shell, por lo que puede encontrar información al respecto help if. ifsolo se ramifica en función de si el siguiente comando devuelve verdadero (0) o falso (no cero). Sin embargo, lo que realmente quieres es man [o man testdónde [es un alias test. Esa declaración se está ejecutando realmente test -x /etc/rc.local, lo que prueba para ver si ese archivo existe y si es ejecutable (o tiene permiso de búsqueda).
man [también funciona
ifno es shell incorporado, es palabra clave de shell. Ejecute este comando type ifpara verificar eso.
De info test:
`-x FILE'
True if FILE exists and execute permission is granted (or search permission, if it is a directory).
Se necesita permiso de ejecución en un directorio para poder crear un CD en él (es decir, hacer que algún directorio sea su directorio de trabajo actual).
Se necesita ejecutar en un directorio para acceder a la información de "inodo" de los archivos que contiene. Necesita esto para buscar en un directorio para leer los inodos de los archivos dentro. Por esta razón, el permiso de ejecución en un directorio a menudo se denomina permiso de búsqueda.