Cada vez que inicio la máquina, ejecuto el siguiente programa:
$ cat start.sh
#! /bin/bash
google-chrome &> /dev/null &
lantern &> /dev/null &
xdg-open . &> /dev/null &
emacs &> /dev/null &
code ~/Programs/ &> /dev/null &
xdg-open ~/Reference/topic_regex.md &> /dev/null &
Incómodo &> /dev/null &... ¿Cómo podría acortar la lógica?
command-line
bash
redirect
background-process
Cálculo
fuente
fuente

Respuestas:
La parte
&> /dev/nullsignifica redirección de salida. Puede redirigir múltiples comandos al mismo archivo agrupándolos en un bloque:Sin embargo, lo mismo no se puede usar para iniciar comandos individuales en segundo plano (
&). Poner&después del bloque significaría ejecutar todo el bloque como un solo script en segundo plano.fuente
&>sintaxis está en desuso y debe reemplazarse con>/dev/null 2>&1wiki-dev.bash-hackers.org/scripting/obsolete#!/bin/bashscript en un shell diferente sin verificar primero la portabilidad, definitivamente no es culpa de Bash si no funciona.Escribí una función y la puse en mi
.bashrcpara ejecutar cosas separadas de mi terminal:... y entonces:
Y como soy flojo, también escribí un atajo para
xdg-open:Como
xdg-openespera exactamente un argumento, la funciónxoitera sobre todos los argumentos dados y llamaxdg-opena cada uno por separado.Esto permite:
fuente
Puede redirigir la salida para todos los comandos posteriores con
fuente
Podría crear un bucle y asignarle los comandos como argumentos:
Tenga en cuenta que de esta manera, exactamente como con el enfoque de subshell con llaves, es posible resumir los resultados y redirigirlos todos a la vez.
fuente
Creé un archivo especial como
/dev/nullcon una ruta más corta para acortar la redirección. Utilicé/ncomo la ruta del nuevo archivo:De esta manera, puede acortar las líneas individuales para, por ejemplo:
Fuente: ¿Cómo crear / dev / null?
fuente