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/null
significa 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>&1
wiki-dev.bash-hackers.org/scripting/obsolete#!/bin/bash
script 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
.bashrc
para ejecutar cosas separadas de mi terminal:... y entonces:
Y como soy flojo, también escribí un atajo para
xdg-open
:Como
xdg-open
espera exactamente un argumento, la funciónxo
itera sobre todos los argumentos dados y llamaxdg-open
a 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/null
con una ruta más corta para acortar la redirección. Utilicé/n
como la ruta del nuevo archivo:De esta manera, puede acortar las líneas individuales para, por ejemplo:
Fuente: ¿Cómo crear / dev / null?
fuente