LINUX.ORG.RU

exec нескольких команд в ~/.xinitrc

 


0

1

в ~/.xinitrc запускается WM:

exec fvwm >/dev/null 2>&1

далее сам WM выполняет несколько команд, например:

AddToFunc StartFunction
+ I Test (Init) PipeRead "test -d \"/tmp/fvwm-$[UID]\" || mkdir \"/tmp/fvwm-$[UID]\""

AddToFunc ExitFunction
+ I Test (Quit) PipeRead "rm --force --recursive \"/tmp/fvwm-$[UID]\""
в данном случае просто создает директорию для себя, если ее нет, и по завершению своей работы удаляет ее.

я хочу всего лишь выкинуть не нужное из StartFunction/ExitFunction - то, что не имеет никакого прямого отношения к WM, а записать это в ~/.xinitrc, но не могу сообразить как написать это на языке bash правильно.

нужно 1) выполнить команды _до_ запуска wm (т.е. _до_ выполнения exec fvwm), и 2) _после_, когда wm завершит работу (процесс будет убит и т.п.).
с первым понятно - записать в любом месте в ~/.xinitrc, а как со вторым, чтобы несколько команд выполнились только строго после того, как процесс wm'а завершится?

проверил такую конструкцию:

(echo blah0; exec htop; echo blah1)
но не сработало. а вообще «exec wm»'а обязателен при запуске иксов?

★★★★★

а вообще «exec wm»'а обязателен при запуске иксов?

ЕМНИП, при отсутствии этой строчки запустится x-window-manager

olibjerd ★★★★★
()

(echo blah0; exec htop; echo blah1)

(echo blah0; exec htop) ; echo blah1

А вообще-то, достаточно просто echo blah0; htop; echo blah1. Не знаю, чтоу тебя за проблема такая - последовательно выполнить команды.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)

Непонятно почему данные каталоги не имеют отношения к WM.

1) test -d \«/tmp/fvwm-$[UID]\» || mkdir \«/tmp/fvwm-$[UID]\» & до строки exec fvwm.

2) Надо поискать что-то на тему logout, аналог .bash_logout

leonidko ★★★★
()
$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
    Replace the shell with the given command.
    
    Execute COMMAND, replacing this shell with the specified program.
    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
    any redirections take effect in the current shell.
    
    Options:
      -a name   pass NAME as the zeroth argument to COMMAND
      -c                execute COMMAND with an empty environment
      -l                place a dash in the zeroth argument to COMMAND
    
    If the command cannot be executed, a non-interactive shell exits, unless
    the shell option `execfail' is set.
    
    Exit Status:
    Returns success unless COMMAND is not found or a redirection error occurs.

Запускайте свои команды до exec.

AITap ★★★★★
()

а вообще «exec wm»'а обязателен при запуске иксов?

Если не будет <<exec>> иксы запустятся и сразу завершат работу.

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