Почему мой сценарий init.d работает при вызове вручную, но не при запуске?

#!/bin/sh
gzip -c

Этого было бы достаточно.

$ mysqldump... |./script >out.gz

gzip -cбудет считывать несжатые данные на стандартный ввод и записывать сжатые данные на стандартный вывод.

Стандартный ввод обеспечивается конвейером, а стандартный вывод перенаправляется в файл. О конвейере и перенаправлении заботится вызывающая оболочка.

Чуть более сложный пример, который берет выражение sedв командной строке и преобразует ввод в соответствии с ним или просто пересылает данные, если выражение не использовалось:

#!/bin/sh

if [ -n "$1" ]; then
    sed -e "$1"
else
    cat
fi

(здесь использование sed -e ""имело бы тот же эффект, что и cat, но я хотел более сложный пример)

$ utility |./script "1,5d" >out

... удалит первые пять строк вывода из utility.

1
30.08.2019, 23:58
1 ответ

Итак, респект Патрику Мевзеку . Намек заглянуть в .xsessionпривел меня к кому-то с такой же потребностью . И оттуда к описанию Debian на xinitrc . В описании указано:

Note : Modern Desktop environment also have (easier|GUI) session management tools. (Under Gnome System Menu > Preferences > session). Except for very specific purpose, it shouldn't be necessary to touch xinitrc file.

Я использую Xfce, и да, у него есть возможность добавлять программы при запуске сеанса под:
-> Настройки
-> Сеанс и поведение при запуске
-> Автоматически запускаемые программы

0
28.01.2020, 00:01

Теги

Похожие вопросы