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, || truepero 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 truees una aplicación y no simplemente una palabra clave? ¿Son lo mismo? ¿Hay una buena razón para usar | true?

| truees que si el comando produce suficiente salida para llenar el búfer de tubería, bloqueará la espera detrueleerlo.foo || trueyfoo | trueno hará lo mismo:foo || truemostrará la salida defoo, mientrasfoo | trueque descartará todo lo quefooescriba en su salida estándar (yfooes probable que mueraSIGPIPEo bloquee, como ya se indicó).