Quiero devolver un código de salida de 0 si la salida está vacío y 1 de otro modo:¿Cómo saber si la salida del comando "buscar" está vacía?
find /this/is/a/path/ -name core.*
Quiero devolver un código de salida de 0 si la salida está vacío y 1 de otro modo:¿Cómo saber si la salida del comando "buscar" está vacía?
find /this/is/a/path/ -name core.*
Cuando usted dice que quiere que regrese un número en particular, ¿se refiere a la condición de salida? Si es así:
[[ -z `find /this/is/a/path/ -name core.*` ]]
Y puesto que sólo se preocupan por una respuesta sí/no, es posible que desee cambiar su hallazgo a esto:
[[ -z `find /this/is/a/path/ -name core.* -print -quit` ]]
que se detendrá después de que el primer archivo encontrado núcleo. Sin eso, si el directorio raíz es grande, el hallazgo podría tomar un tiempo.
Probablemente hay muchas variantes, pero este es uno:
test $(find /this/is/a/path/ -name core.* | wc -c) -eq 0
Aquí está mi versión. :)
[ -z "$(find /this/is/a/path/ -name 'core.*')" ] && true
Editado por razones de brevedad:
[ -z "$(find /this/is/a/path/ -name 'core.*')" ]
lo que es el '&& true' para? –
Heh, estaba pensando, "Para establecer el estado de salida". Pero sí, duh, la prueba ya lo hace, es totalmente innecesario, buena captura. –
Tal vez esto
find /this/is/a/path/ -name 'core.*' | read
Esto devolverá 0 si la salida no está vacía, no si está vacía. –
Vaya. La lógica se revirtió. Corregido arriba. Alex está en lo correcto con '-z' –
+1 para la opción' -quit', ¡muy agradable! –