Каждый раз, запуская машину, я запускаю следующую программу:
$ 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 &
Громоздко &> /dev/null &
... Как я мог сократить логику?
command-line
bash
redirect
background-process
Исчисление
источник
источник
Ответы:
Часть
&> /dev/null
означает перенаправление вывода. Вы можете перенаправить несколько команд в один файл, сгруппировав их в блок:Однако то же самое нельзя использовать для запуска отдельных команд в фоновом режиме (
&
). Установка&
после блока будет означать запуск всего блока в виде одного скрипта в фоновом режиме.источник
&>
синтаксис устарел и должен быть заменен на>/dev/null 2>&1
wiki-dev.bash-hackers.org/scripting/obsolete#!/bin/bash
сценарий в другой оболочке без предварительной проверки переносимости, это определенно не ошибка Bash, если он не работает.Я написал функцию и поместил ее в мой,
.bashrc
чтобы запускать вещи, отделенные от моего терминала:... а потом:
И потому что я ленивый, я также написал ярлык для
xdg-open
:Поскольку
xdg-open
ожидается ровно один аргумент, функцияxo
выполняет итерацию по всем заданным аргументам и вызываетxdg-open
каждый из них в отдельности.Это позволяет:
источник
Вы можете перенаправить вывод для всех последующих команд с помощью
источник
Вы можете создать цикл и дать ему команды в качестве аргументов:
Обратите внимание, что таким же образом, как и в случае подоболочечного подхода с фигурными скобками, можно суммировать выходные данные и перенаправлять их все сразу.
источник
Я создал специальный файл, например,
/dev/null
с более коротким путем, чтобы сократить перенаправление. Я использовал в/n
качестве пути к новому файлу:Таким образом, вы можете сократить отдельные строки, например:
Источник: Как создать / dev / null?
источник