Qué -x
significa aquí:
if [ -x /etc/rc.local ] then
¿Cómo puedo encontrar esta página de manual if
?
command-line
bash
taymindis Woon
fuente
fuente
help if
?Respuestas:
De las
man bash
páginas (especialmente la sección EXPRESIONES CONDICIONALES):fuente
test
en bash, no estás invocando eltest
binario. En cambio, estás invocando a bashtest
incorporado, que tiene documentación enhelp test
, entre otros lugares.man test
puede ser engañoso en algunos casos por esa razón.if
en sí es una palabra clave de shell, por lo que puede encontrar información al respectohelp if
.if
solo se ramifica en función de si el siguiente comando devuelve verdadero (0) o falso (no cero). Sin embargo, lo que realmente quieres esman [
oman test
dónde[
es un aliastest
. Esa declaración se está ejecutando realmentetest -x /etc/rc.local
, lo que prueba para ver si ese archivo existe y si es ejecutable (o tiene permiso de búsqueda).fuente
man [
también funcionaif
no es shell incorporado, es palabra clave de shell. Ejecute este comandotype if
para verificar eso.De
info test
: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.
fuente