Tengo un archivo MAKE donde detengo un servicio antes de eliminar un archivo. Cuando no podía detener el servicio, se rompería por error. Esto es claramente no deseado, así que pensé en agregar, || true
pero me perdí un |
. Haciendolo:
stop service foo | true
rm /etc/init/foo.conf
Estoy confundido sobre por qué esto está funcionando y qué está sucediendo. ¿Esto significa que true
es una aplicación y no simplemente una palabra clave? ¿Son lo mismo? ¿Hay una buena razón para usar | true
?
| true
es que si el comando produce suficiente salida para llenar el búfer de tubería, bloqueará la espera detrue
leerlo.foo || true
yfoo | true
no hará lo mismo:foo || true
mostrará la salida defoo
, mientrasfoo | true
que descartará todo lo quefoo
escriba en su salida estándar (yfoo
es probable que mueraSIGPIPE
o bloquee, como ya se indicó).