Автор Тема: bash - странное поведение или я чего-то не понимаю  (Прочитано 1989 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн m90125

Всем привет!

Проблема в следующем: некоторое время назад написал скрипт для запуска оффтопика в VirtualBox с последующим раскрытием окна на весь экран. Вот он (работает):

VBoxManage startvm WinXP --type gui && sleep 30 && xdotool search --name WinXP | xdotool windowactivate && xdotool mousemove 698 313 ; xdotool click --repeat=1 1 && xdotool key "Control_R+f"

Сегодня решил сделать подобный скрипт для LxTask (Диспетчер задач среды LXDE). Изменил предыдущий скрипт, поменяв название окна, время ожидания после запуска программы, координаты перемещения курсора мыши и комбинацию клавиш для раскрытия активного окна на весь экран:

lxtask && sleep 5 && xdotool search --name "Диспетчер задач" | xdotool windowactivate && xdotool mousemove 310 179 ; xdotool click --repeat=1 1 && xdotool key alt+F10

Этот скрипт не работает.

Вопрос - почему? Может кто-нибудь знает в чём тут дело?

 Пробовал в консоли: xdotool search --name "Диспетчер задач" | xdotool windowactivate
 Ответ:
There are no windows in the stack
Invalid window '%1'
Usage: windowactivate [options] [window=%1]
--sync    - only exit once the window is active (is visible + active)
If no window is given, %1 is used. See WINDOW STACK in xdotool(1)

Читал man xdotool на предмет WINDOW STACK, но мой английский плох и честно говоря ничего полезного для решения проблемы не понял. Нашёл это: http://www.linux.org/threads/xdotool-%E2%80%93-window-stack.6625/   , по прочтении попробовал много разных вариантов, все уже не вспомню, но никак.

Система Debian 8.2.0, IceWM (Последняя команда неработающего скрипта - нажатие alt+F10 для раскрытия активного окна на весь экран в IceWM. Сочетание само по себе работает.)

« Последнее редактирование: 27 Октября 2015, 21:08:51 от m90125 »
 

Оффлайн vic5710

lxtask && sleep 5 && xdotool search --name "Диспетчер задач" | xdotool windowactivate && xdotool mousemove 310 179 ; xdotool click --repeat=1 1 && xdotool key alt+F10

все верно. пока lxtask не завершится, sleep не запустится.
примерно так:
lxtask &
sleep 5 && xdоtool #  и далее...
 
Пользователи, которые поблагодарили этот пост: m90125

Оффлайн m90125

lxtask &
sleep 5 && xdоtool
Да, всё заработало! Спасибо! :)
Кстати, sleep 1 достаточно. Символ ; в данном случае почему-то не работает, а & работает. Хотя это одно и то же: https://www.opennet.ru/docs/RUS/linux_base/node27.html

Некоторое время назад я выснил, что для последовательного выполнения команд их нужно разделять символом ;  . Про амперсанд в той статье сказано не было. Отсюда и возник такой глупый вопрос )
« Последнее редактирование: 27 Октября 2015, 21:39:30 от m90125 »
 

Оффлайн vic5710

Символ ; в данном случае почему-то не работает, а & работает. Хотя это одно и то же:
тут вы ошибаетесь
; - последовательное выполнение команд
&& и || -  выполнение команд по коду возврата
MacBook-Air-Vic:temp vic57$ touch 1
MacBook-Air-Vic:temp vic57$ [ -f 1 ] && echo OK || echo ERROR
OK
MacBook-Air-Vic:temp vic57$ rm 1
MacBook-Air-Vic:temp vic57$ [ -f 1 ] && echo OK || echo ERROR
ERROR
 

Оффлайн m90125

тут вы ошибаетесь
; - последовательное выполнение команд
&& и || -  выполнение команд по коду возврата

Да, Вы конечно правы, но я имел ввиду знак ОДНОГО амперсанда, который, если верить приведённой мною ссылке, есть то же самое, что и ; . Или я что-то не так понял?
 

Оффлайн vic5710

lxtask & - запуск процесса в фоне. &&  и || - это совсем другое
http://www.opennet.ru/docs/RUS/bash_scripting_guide/c12330.html
« Последнее редактирование: 27 Октября 2015, 21:52:28 от vic5710 »
 
Пользователи, которые поблагодарили этот пост: m90125

Оффлайн m90125

lxtask & - запуск процесса в фоне.
Спасибо! Это важное знание! :)
 

Теги:
     

    Как в bash-скрипте ........

    Автор boryspil

    Ответов: 9
    Просмотров: 1944
    Последний ответ 08 Января 2014, 11:39:54
    от Malaheenee
    Дубли в истории команд bash

    Автор yoric

    Ответов: 12
    Просмотров: 2678
    Последний ответ 22 Ноября 2015, 23:49:15
    от yoric
    bash Вопросы

    Автор СергейDebian

    Ответов: 9
    Просмотров: 1381
    Последний ответ 27 Июля 2018, 20:56:43
    от СергейDebian
    Непонятки с bash

    Автор Fieryx

    Ответов: 3
    Просмотров: 1416
    Последний ответ 11 Ноября 2012, 20:48:09
    от xbsd
    Переключение между интерпретаторами - bash и zsh!

    Автор Babay

    Ответов: 5
    Просмотров: 3322
    Последний ответ 17 Марта 2015, 06:54:57
    от Babay