À chaque démarrage de la machine, j'exécute le programme suivant:
$ 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 &
Lourdeur &> /dev/null &
... Comment pourrais-je raccourcir la logique?
Réponses:
La partie
&> /dev/null
signifie la redirection de sortie. Vous pouvez rediriger plusieurs commandes vers le même fichier en les regroupant dans un bloc:Cependant, la même chose ne peut pas être utilisée pour démarrer des commandes individuelles en arrière-plan (
&
). Mettre&
après le bloc signifierait exécuter le bloc entier comme un seul script en arrière-plan.la source
&>
syntaxe est obsolète et doit être remplacée par>/dev/null 2>&1
wiki-dev.bash-hackers.org/scripting/obsolete#!/bin/bash
script dans un autre shell sans vérifier d'abord la portabilité, ce n'est certainement pas la faute de Bash s'il ne fonctionne pas.J'ai écrit une fonction et l'ai mise dans mon
.bashrc
pour exécuter des choses détachées de mon terminal:... puis:
Et parce que je suis paresseux, j'ai également écrit un raccourci pour
xdg-open
:Parce qu'elle
xdg-open
attend exactement un argument, la fonctionxo
itère sur tous les arguments donnés et les appellexdg-open
séparément.Cela permet:
la source
Vous pouvez rediriger la sortie pour toutes les commandes suivantes avec
la source
Vous pouvez créer une boucle et lui donner les commandes comme arguments:
Notez que de cette manière exactement comme avec l'approche sous-coque avec des accolades, il est possible de résumer les sorties et de les rediriger toutes en même temps.
la source
J'ai créé un fichier spécial comme
/dev/null
avec un chemin plus court pour raccourcir la redirection. J'ai utilisé/n
comme chemin du nouveau fichier:De cette façon, vous pouvez raccourcir les lignes individuelles pour par exemple:
Source: Comment créer / dev / null?
la source