LINUX.ORG.RU

Синтаксис bash - &&


0

1

Баш знаю очень плохо. И вот ситуация. Имеется fluxbox. И файл к нему - ~/.fluxbox/startup. Прописываю соответственно для запуска xcompmgr и wicd-client:

fluxbox &&
xcompmgr -c -f &&
wicd-client

Запускается лишь только fluxbox. При замене «&&» на «&» - ничего вообще ничего не происходит. Наличие в скрипте fluxbox обязательно. Что делать? Маны твердят, что всё верно.

Deleted

> И файл к нему - ~/.fluxbox/startup.

fluxbox &&

Попробуйте вот так:
xcompmgr -c -f &
wicd-client &
exec fluxbox

Файл ~/.fluxbox/startup начинается с #!/bin/bash?

AITap ★★★★★
()

Хитрый план в стартап флюксбокса засунуть флюксбокс.
A && B - выполнить A, если A успешно завершится, то запустить B
A & - запустить A как фоновый процесс, т. е. не отдавать ему stdin.

tiandrey ★★★★★
()

>> Маны твердят, что всё верно.

У тебя какие-то особые уличные маны?

Запускается лишь только fluxbox.

Ну да, остальное запускается по окончании его работы :)

Пропиши эти команды до строки exec fluxbox, и никаких &&, только &.

GotF ★★★★★
()
Ответ на: комментарий от AITap

>Файл ~/.fluxbox/startup начинается с #!/bin/bash?

Спасибо за поправку, сейчас добавлю.

Попробуйте вот так:

xcompmgr -c -f & wicd-client & exec fluxbox

Хитрый план в стартап флюксбокса засунуть флюксбокс.

A && B - выполнить A, если A успешно завершится, то запустить B A & - запустить A как фоновый процесс, т. е. не отдавать ему stdin.

Сейчас попробую и отпишусь

Deleted
()
Ответ на: комментарий от tiandrey

>> Хитрый план в стартап флюксбокса засунуть флюксбокс.

Это абсолютно необходимо, потому что файл startup вызывается startfluxbox, а не fluxbox.

GotF ★★★★★
()
Ответ на: комментарий от Deleted

Хитрый план в стартап флюксбокса засунуть флюксбокс.


Тут-то я и лажу сказал, забыл, что действительно нужно засовывать. Только тут одно «но» - флюксбокс должен быть последним в списке вызываемых файлов, и его надо вызывать через exec fluxbox, а не через просто fluxbox или fluxbox &.

tiandrey ★★★★★
()
Ответ на: комментарий от GotF

>Пропиши эти команды до строки exec fluxbox, и никаких &&, только &.

Cпасибо, помогло. Держи награду.

Deleted
()
Ответ на: комментарий от tiandrey

>> его надо вызывать через exec fluxbox, а не через просто fluxbox или fluxbox &

В случае отложенного запуска команд это может выглядеть так:

fluxbox &
fbpid=$!
(sleep 3 && {
    xmodmap «/home/gotf/.Xmodmap»
    xrdb -merge «/home/gotf/.Xdefaults»
    nitrogen --restore
    xscreensaver &
    xxkb &
}) &
wait $fbpid

;)

GotF ★★★★★
()
Ответ на: комментарий от GotF

Это я уже прочитал ;)
Не важно, как, главное, чтобы скрипт startup прекратил выполнение вместе с процессом fluxbox. А как это сделать - дело десятое, хоть exec, хоть wait, хоть в цикле проверяй, закончился процесс или нет, etc.

tiandrey ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.