#!/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
.
Итак, респект Патрику Мевзеку . Намек заглянуть в .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, и да, у него есть возможность добавлять программы при запуске сеанса под:
-> Настройки
-> Сеанс и поведение при запуске
-> Автоматически запускаемые программы