Автор Тема: Не хватает батников в линуксе  (Прочитано 769 раз)

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Цель запустить фоновую консольную прогу A от рута. Пусть висит в памяти. Запустить графическую прогу B от юзера. Когда прога B отработает и закроется, убить прогу A (чистка).
Все эти действия должны быть доступны в один клик. Поскольку батников в линуксе нет, то в .desktop файле, который в меню.

Даже не представляю как это сделать, то что делается в батниках тремя строчками:
start "" A
B
taskkill /IM A
Да, всё это время будет висеть терминал в фоне. На винде на него можно создать ярлык и указать в ярлыке minimized. Винда рулит.

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Re: Не хватает батников в линуксе
« Ответ #1 : 10.11.2023 05:36:14 »
В общем-то, у меня на линуксе всё также сработало:
#!/bin/bash
/home/denis/software/filecxx/lib/filec start&
/home/denis/software/filecxx/fileu
killall filec
И даже лучше (терминал не висит в фоне).

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Re: Не хватает батников в линуксе
« Ответ #2 : 10.11.2023 08:29:06 »
Кстати, а где оболочка dash в альте?

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 161
Re: Не хватает батников в линуксе
« Ответ #3 : 10.11.2023 08:31:56 »
Цель запустить фоновую консольную прогу A от рута. Пусть висит в памяти. Запустить графическую прогу B от юзера. Когда прога B отработает и закроется, убить прогу A (чистка).
Все эти действия должны быть доступны в один клик. Поскольку батников в линуксе нет, то в .desktop файле, который в меню.

Даже не представляю как это сделать, то что делается в батниках тремя строчками:
start "" A
B
taskkill /IM A
Да, всё это время будет висеть терминал в фоне. На винде на него можно создать ярлык и указать в ярлыке minimized. Винда рулит.
"А мужики-то и не знают!"©
https://www.opennet.ru/docs/RUS/bash_scripting_guide/
Изучайте! :))

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Re: Не хватает батников в линуксе
« Ответ #4 : 10.11.2023 08:43:20 »
Классическая ссылка. Но все забывают об удобствах.
На винде ПКМ - создал .bat файл - сохранил - даблклик хоть где - результат в терминале.

На линуксе:
В файле нужно указать #!/bin/sh (лишняя писанина).
Потом каждый скрипт сделать исполняемым (с свойствах файла или тащить в терминал chmod +x)
Потом тащить скрипт в терминал.
Чувствуете как "удобно"?
А если надо создать ярлык (и положить в пуск, хотя не обязательно).
Надо создавать .desktop файл (с нуля или некоторые DE помогут), указывать там путь к скрипту.
Копировать этот .desktop в ~/.local/share/applications.

Сделать можно. Вопрос в удобствах.
« Последнее редактирование: 10.11.2023 09:23:36 от artenaki »

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Re: Не хватает батников в линуксе
« Ответ #5 : 10.11.2023 08:46:16 »
На винде правда надо дописать pause. А теперь понимаете почему pause нет на линуксе? Нет удобств - нет pause.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 041
  • ITS
Re: Не хватает батников в линуксе
« Ответ #6 : 10.11.2023 08:59:39 »
На винде правда надо дописать pause. А теперь понимаете почему pause нет на линуксе? Нет удобств - нет pause.
Дело не в удобствах, а в знаниях. Нет знаний - нет удобств.
Все, с кем ты здесь споришь, "выходцы" из Windows, можешь не объяснять, как устроен велосипед, причина отказа от Windows у всех разная и примерно одинаковая )
Тебе будет полезней, узнать от народа о данных причинах, чем спорить с какой стороны карамель на батончик намазывать, слева на право или с права налево )

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Не хватает батников в линуксе
« Ответ #7 : 10.11.2023 09:43:32 »
В файле нужно указать #!/bin/sh (лишняя писанина).
Нет, не лишняя. Ибо тут может быть #!/bin/bash, #!/usr/bin/perl, #!/usr/bin/python, /usr/bin/<вообще фиг знает что>
https://ru.wikipedia.org/wiki/Шебанг_(Unix)
Надо создавать .desktop файл (с нуля или некоторые DE помогут), указывать там путь к скрипту.
Копировать этот .desktop в ~/.local/share/applications.
Зачем? Есть ~/.bashrc и ~/.bash_profile
« Последнее редактирование: 10.11.2023 09:58:05 от asy »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Не хватает батников в линуксе
« Ответ #8 : 10.11.2023 09:48:33 »
Кстати, а где оболочка dash в альте?
А почему она обязана быть? В ALT по умолчанию bash. И sh, как его довесок, из одного исходного пакета собираются: https://packages.altlinux.org/en/sisyphus/srpms/bash4/rpms/

Но, кстати, и правда, dash и в репозитории отсутствует. Значит никому из Team не понадобился, раз не собрали. И техподдержку Базальта никто не просил наверное.
« Последнее редактирование: 10.11.2023 09:54:21 от asy »

Оффлайн artenaki

  • Давно тут
  • **
  • Сообщений: 184
Re: Не хватает батников в линуксе
« Ответ #9 : 10.11.2023 16:30:12 »
На линуксе многое зависит от DE. На рабочем столе Xfce, к примеру, можно запускать .sh файлы даблкликом, а в других папках выбрать "открыть в bash". Терминал не появится (в этом есть и плюсы), но он мне кажется в таких случаях нужен только для отладки, а для отладки скрипт можно и в терминал перетащить.
А в LXDE ждет вот такое окно:


dash в альте действительно нет (легко собрать), sh ссылается на sh5.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Не хватает батников в линуксе
« Ответ #10 : 11.11.2023 00:22:42 »
А в LXDE ждет вот такое окно:

Отличное окно.
Отключается, кстати, всего 1 галочкой в настройках - а не как в новой винде, где позапрятали настройки проводника - хрен вообще чего найдешь...

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Не хватает батников в линуксе
« Ответ #11 : 11.11.2023 01:34:29 »
На линуксе многое зависит от DE.
Мышевозилы гуёвые... Тнрмнал, только терминал. Ну и там, может быть, mc. :-)

Оффлайн Linux User

  • Давно тут
  • **
  • Сообщений: 109
Re: Не хватает батников в линуксе
« Ответ #12 : 06.03.2024 00:22:38 »
Поскольку батников в линуксе нет
Я испытываю испанский стыд  от этого утверждения :-D

Цель запустить фоновую консольную прогу A от рута
$ sudo -b ~/A
Потом каждый скрипт сделать исполняемым
Можно запускать так $ bash ~/yourscript.sh в этом случае шабанг можно опустить

Нет удобств - нет pause.
$ read -er -p 'Press Enter to continue...'
Работа с заданиями $ echo start; SECONDS=0; sleep $(($RANDOM%10)) & sleep $(($RANDOM%10)) & sleep $(($RANDOM%10)) & echo 'All "sleeps" started.'; wait; echo "All done in $SECONDS seconds."
что делается в батниках тремя строчками
возможно так
#!/bin/bash
/home/denis/software/filecxx/lib/filec start
su -c "/home/denis/software/filecxx/fileu" denis
killall filec

Оффлайн Linux User

  • Давно тут
  • **
  • Сообщений: 109
Re: Не хватает батников в линуксе
« Ответ #13 : 06.03.2024 01:14:28 »
Мышевозилы гуёвые
Не не не не , Geany и shellcheck наше все

Оффлайн Linux User

  • Давно тут
  • **
  • Сообщений: 109
Re: Не хватает батников в линуксе
« Ответ #14 : 06.03.2024 09:56:17 »
создать ярлык и указать в ярлыке minimized.
$ xfce4-terminal --help
Использование:
  xfce4-terminal [ПАРАМЕТР...]

Общие параметры:
  -h, --help; -V, --version; --disable-server; --color-table; --preferences;
  --default-display=экран; --default-working-directory=каталог

Разделители окон или вкладок:
  --tab; --window

Параметры вкладок:
  -x, --execute; -e, --command=команда; -T, --title=заголовок;
  --dynamic-title-mode=режим ('replace', 'before', 'after', 'none');
  --initial-title=заголовок; --working-directory=каталог; -H, --hold;
  --active-tab; --color-text=цвет; --color-bg=цвет

Параметры окон:
  --display=экран; --geometry=геометрия; --role=роль; --drop-down;
  --startup-id=строка; -I, --icon=значок; --fullscreen; --maximize; --minimize;
  --show-menubar, --hide-menubar; --show-borders, --hide-borders;
  --show-toolbar, --hide-toolbar; --show-scrollbar, --hide-scrollbar;
  --font=шрифт; --zoom=масштаб

Смотрите man-страницу xfce4-terminal для полного описания параметров.