Завершить процесс (Например, браузера)
Модератор: Bizdelnick
-
- Сообщения: 122
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Пожалуйста..!

Добавлено (19:33):
Радует...

Добавлено (19:36):
Попробую. Спасибо!

Добавлено (19:54):
Если глубже копнуть, то пользователи:olecya и ormorph
наставили меня на путь истинный!

=> Им огромное спасибо!

Последний раз редактировалось igor@igor 21.05.2023 23:17, всего редактировалось 1 раз.
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Да я предпочитаю свои скрипты использовать...
С помощью, "своих скриптов", я сколько угодно xterm / lxterminal / другого ПО могу запустить с созданием файлов *.pid в /tmp
(Единственное, у lxterminal один файл .pid созается((()
...
-
- Сообщения: 1181
- ОС: Slackware
Re: Завершить процесс
Ага, но не можете одной командой запустить на них все что вы используете, раскидав по вкладкам/табам и другие вещи, как, например, ввести одну и ту же команду на всех пяти терминалах
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Для xterm
И один труъ скрипт:
Который запускается при старте X'ов
.xinitrc
Лучше так. Зато, c корректым завершением каждого процесса. Хоть и у скрипта buf_cx.sh
"индусский стиль написания"...
...
...
...
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 3. Скрипт: xterm_0.bash для запуска эмулятора терминала xterm
set -x
profiles=(0 1 2 3)
dir="/tmp/xtermpids"
if ! [ -d "${dir}" ] ; then
mkdir "${dir}"
fi
startxterm_0() {
local pid prof
prof=$1
/usr/bin/xterm -xrm 'XTerm.vt100.allowTitleOps: false' -n "${prof}" &
pid=$!
echo ${pid} >"${dir}/${prof}.pid"
wait
rm "${dir}/${prof}.pid"
}
for prof in "${profiles[@]}"
do
if ! [ -f "${dir}/${prof}.pid" ] ; then
startxterm_0 "${prof}" &
fi
done
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 0. Скрипт: k_xterm_all.bash для завершения работы эмулятора терминала xterm
# shellcheck disable=SC2046
set -x
dir="/tmp/xtermpids"
for pidfile in "${dir}"/*
do
kill $(cat "$pidfile")
done
sleep 0.5
a='/tmp/xtermpids'
printf "\nПросмотр содержимого каталога: /tmp/xtermpids\n\n"
ls -la "${a:?}"
printf "\nУдаление содержимого каталога: /tmp/xtermpids\n\n"
rm -rf "${a:?}"/*
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 0. Скрипт: xterm_1.bash для запуска эмулятора терминала xterm
set -x
profiles=( "$@" )
dir="/tmp/xtermpids"
if ! [ -d "${dir}" ] ; then
mkdir "${dir}"
fi
startxterm_1() {
local pid prof
prof=$1
/usr/bin/xterm -xrm 'XTerm.vt100.allowTitleOps: false' -n "${prof}" &
pid=$!
echo ${pid} >"${dir}/${prof}.pid"
wait
rm "${dir}/${prof}.pid"
}
for prof in "${profiles[@]}"
do
if ! [ -f "${dir}/${prof}.pid" ] ; then
startxterm_1 "${prof}" &
fi
done
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 0. Скрипт: k_xterm_1.bash для завершения работы эмулятора терминала xterm
# shellcheck disable=SC2046
set -x
profiles=( "$@" )
dir="/tmp/xtermpids"
for prof in "${profiles[@]}"
do
if [ -f "${dir}/${prof}.pid" ] ; then
kill $(cat "${dir}/${prof}.pid")
fi
done
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 1. Скрипт: buf_cx.sh для запуска ПО по выбору.
"$HOME/opisanie.sh"
OPTIONS="Описание_[выполнение_скрипта:_opisanie.sh] Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash] Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash] Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash] Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash] Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash] Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash] Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite_._Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xscreen2.sh] Завершение_работы_хранителя_экрана_[выполнение_скрипта:_k_xscreen2.sh] Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_xscreen.sh] Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_xscreen.sh] Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh] Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh] Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh] Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash] Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash] Память_[выполнение_скрипта:_free.sh] Запуск_полной_цепи_линии_[выполнение_скрипта:_all.sh] Завершение_работы_полной_цепи_линии_[выполнение_скрипта:_k_all.sh] Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash] Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash] Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash] Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash] Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash] Завершение_работы_скрипта:__buf_cx.sh"
#Запуск_или_завершение_работы_браузеров_firefox_[выполнение_скрипта:_z_zap_f_xterm.bash]
printf "\n"
select opt in $OPTIONS; do
if [ "$opt" = "Завершение_работы_скрипта:__buf_cx.sh" ]; then
printf "\nЗавершение работы скрипта: buf_cx.sh выполнено успешно\n"
sleep 3
exit
# #"$HOME/k_zx_buf_cx.bash"
elif [ "$opt" = "Описание_[выполнение_скрипта:_opisanie.sh]" ]; then
printf "\nВыполнен cкрипт: opisanie.sh\n"
"$HOME/opisanie.sh"
elif [ "$opt" = "Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_0.bash\n"
"$HOME/parcellite_0.bash"
elif [ "$opt" = "Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0.bash\n"
"$HOME/k_parcellite_0.bash"
elif [ "$opt" = "Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_1.bash\n"
"$HOME/parcellite_1.bash"
elif [ "$opt" = "Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_1.bash\n"
"$HOME/k_parcellite_1.bash"
elif [ "$opt" = "Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_0_1.bash\n"
"$HOME/parcellite_0_1.bash"
elif [ "$opt" = "Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0_1.bash\n"
"$HOME/k_parcellite_0_1.bash"
elif [ "$opt" = "Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite_._Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xscreen2.sh]" ]; then
printf "\nВыполнен cкрипт: xscreen2.sh\n"
"$HOME/xscreen2.sh"
elif [ "$opt" = "Завершение_работы_хранителя_экрана_[выполнение_скрипта:_k_xscreen2.sh]" ]; then
printf "\nВыполнен cкрипт: k_xscreen2.sh\n"
"$HOME/k_xscreen2.sh"
elif [ "$opt" = "Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_xscreen.sh]" ]; then
printf "\nВыполнен cкрипт: xscreen.sh\n"
"$HOME/xscreen.sh" &
elif [ "$opt" = "Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_xscreen.sh]" ]; then
printf "\nВыполнен cкрипт: k_xscreen.sh\n"
"$HOME/k_xscreen.sh"
elif [ "$opt" = "Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh]" ]; then
printf "\nВыполнен cкрипт: xset_sost.sh\n"
"$HOME/xset_sost.sh"
elif [ "$opt" = "Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh]" ]; then
printf "\nВыполнен cкрипт: xset.sh\n"
"$HOME/xset.sh"
elif [ "$opt" = "Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh]" ]; then
printf "\nВыполнен cкрипт: k_xset.sh\n"
"$HOME/k_xset.sh"
elif [ "$opt" = "Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash]" ]; then
printf "\nВыполнен скрипт: zx_buf_po.bash\n"
"$HOME/zx_buf_po.bash"
elif [ "$opt" = "Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash]" ]; then
printf "\nВыполнен скрипт: k_zx_buf_po.bash\n\n"
sleep 3
"$HOME/k_zx_buf_po.bash"
elif [ "$opt" = "Память_[выполнение_скрипта:_free.sh]" ]; then
printf "\nВыполнен cкрипт: free.sh\n"
"$HOME/free.sh"
elif [ "$opt" = "Запуск_полной_цепи_линии_[выполнение_скрипта:_all.sh]" ]; then
printf "\nВыполнен cкрипт: all.sh\n"
"$HOME/all.sh"
elif [ "$opt" = "Завершение_работы_полной_цепи_линии_[выполнение_скрипта:_k_all.sh]" ]; then
printf "\nВыполнен скрипт: k_all.sh\n"
"$HOME/k_all.sh"
elif [ "$opt" = "Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash]" ]; then
printf "\nВыполнен скрипа: xterm_0.bash\n"
"$HOME/xterm_0.bash"
elif [ "$opt" = "Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash]" ]; then
printf "\nВыполнен cкрипт: k_xterm_all.bash\n"
"$HOME/k_xterm_all.bash"
#*****************************************
elif [ "$opt" = "Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash]" ]; then
printf "\nВыполнен скрипа: mc_0.bash\n"
"$HOME/mc_0.bash"
elif [ "$opt" = "Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash]" ]; then
printf "\nВыполнен cкрипт: k_mc_0.bash\n"
"$HOME/k_mc_0.bash"
#****************************************
# elif [ "$opt" = "Запуск_или_завершение_работы_браузеров_firefox_[выполнение_скрипта:_z_zap_f_xterm.bash]" ]; then
# printf "\nВыполнен cкрипт: z_zap_f_xterm.bash\n"
# "$HOME/z_zap_f_xterm.bash"
elif [ "$opt" = "Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash]" ]; then
printf "\nВыполнен скрипт: k_zx_buf_cx.bash\n\n"
sleep 3
"$HOME/k_zx_buf_cx.bash"
#Завершить_процесс:_zx_buf_cx.bash
else
clear
printf "\nВы, ввели неверное значение! Пожалуйста, попробуйте еще раз!\n"
fi
done
#k_zx_buf_cx.bash
#zx_buf_cx.bash
#parcellite_1.bash
#k_parcellite_1.bash
#parcellite_0_1.bash
#k_parcellite_0_1.bash
#z_zap_f_xterm.bash
#zx_buf_po.bash
.xinitrc
Код: Выделить всё
#"$HOME"/po_buf_cx.sh
"$HOME"/zx_buf_cx.bash
exec fluxbox
"индусский стиль написания"...

...
Добавлено (00:22):
И по Вашему совету (Вашим методам) *.pid файл процесса создаётся..?
...
Добавлено (00:40):
=> Мне стоит лучше "пощупать" ...
...
-
- Сообщения: 1181
- ОС: Slackware
Re: Завершить процесс
igor@igor
К счастью, для меня, люди написали ОС, менеджеры процессов и другие чудесные вещи и теперь я могу нажать, в моем случае, Cmd+Q и закрыть приложение. А что FF закрылся корректно, при желании, могу увидеть по потреблению ОЗУ, которое отображается у меня на панеле.
Пока у меня нет поводов не доверять работе системы в управлении процессами. А если я каждое приложение, что запускается в системе буду ручками открывать/закрывать, боюсь это меня сильно измотает
К счастью, для меня, люди написали ОС, менеджеры процессов и другие чудесные вещи и теперь я могу нажать, в моем случае, Cmd+Q и закрыть приложение. А что FF закрылся корректно, при желании, могу увидеть по потреблению ОЗУ, которое отображается у меня на панеле.
Пока у меня нет поводов не доверять работе системы в управлении процессами. А если я каждое приложение, что запускается в системе буду ручками открывать/закрывать, боюсь это меня сильно измотает

"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
UnixNoob
А я вот на каждую софтину (не только на лису) сделал создание *.pid файла...
...
И => могу либо "прибить" процесс из труъ скрипта выбора ПО, либо осуществить выход по ctrl+Q / alt+F4 // закрыть через "крестик" софтину...
...
Сделал всё это, для того чтобы ПО конкретно завершалось и память не "утекала" ...
...
тоже огромное спасибо!
Он - первый наставил меня на путь истинный (речь про *.pid файлы на процесс лисы)
А я на каждый процесс / каждую софтину создаю *.pid файл...
...
А я вот на каждую софтину (не только на лису) сделал создание *.pid файла...
...
И => могу либо "прибить" процесс из труъ скрипта выбора ПО, либо осуществить выход по ctrl+Q / alt+F4 // закрыть через "крестик" софтину...
...
Сделал всё это, для того чтобы ПО конкретно завершалось и память не "утекала" ...
...
Добавлено (22:53):
И => пользователю Bizdelnickтоже огромное спасибо!

Он - первый наставил меня на путь истинный (речь про *.pid файлы на процесс лисы)
А я на каждый процесс / каждую софтину создаю *.pid файл...
...
-
- Сообщения: 122
-
- Сообщения: 1181
- ОС: Slackware
Re: Завершить процесс
Самое время, когда Яндекс покинул основатель, а президент одобряет продажу контрольного пакета, его попробовать!
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Спасибо!
Попробую...
...
Добавлено (13:43):
А от этого качество браузера ниже?
-
- Сообщения: 122
Re: Завершить процесс
Ну я для себя неожиданно waterfox обнаружил, никогда бы не подумал , что FF так здорово работать может
Спасибо сказали:
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Я всегда "лису" использовал / ипользую (настраивается "тонко"...) => отличный браузер..!
ЕМНИП яндекс браузер чем-то на алису похож ... (или как там)
В любом случае, нужно "поделку" от яндекса "пощупать" )))
...
Добавлено (13:41):
Waterfox на FF запилен.И смысл его использовать?
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Привел в порядок..:
.xinitrc
Скажите, пожалуйста.
.xinitrc
Код: Выделить всё
"$HOME"/zx_buf_cx.bash
exec fluxbox
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 0. Скрипт: zx_buf_cx.bash для запуска скрипта buf_cx.sh
set -x
profiles=(zxr_buf_cx)
dir="/tmp/zx_buf_cx"
if ! [ -d "${dir}" ] ; then
mkdir "${dir}"
fi
start_zx_buf_cx_0() {
local pid prof
prof=$1
/usr/bin/xterm -xrm 'XTerm.vt100.allowTitleOps: false' -e "$HOME/buf_cx.sh" -n "${prof}" &
pid=$!
echo ${pid} >"${dir}/${prof}.pid"
wait
rm "${dir}/${prof}.pid"
}
for prof in "${profiles[@]}"
do
if ! [ -f "${dir}/${prof}.pid" ] ; then
start_zx_buf_cx_0 "${prof}" &
fi
done
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 0. Скрипт: k_zx_buf_cx.bash для завершения работы скриптов buf_cx.sh и zx_buf_cx.bash
# shellcheck disable=SC2046
set -x
dir="/tmp/zx_buf_cx"
for pidfile in "${dir}"/*
do
kill $(cat "$pidfile")
done
sleep 0.5
a='/tmp/zx_buf_cx'
printf "\nПросмотр содержимого каталога: /tmp/zx_buf_cx\n\n"
ls -la "${a:?}"
printf "\nУдаление содержимого каталога: /tmp/zx_buf_cx\n\n"
rm -rf "${a:?}"/*
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 3. Скрипт: buf_cx.sh для запуска ПО по выбору.
OPTIONS="Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash] Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash] Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash] Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash] Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash] Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash] Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite2_[выполнение_скрипта:_sv_xscreensaver_2.sh] Завершение_работы_хранителя_экрана_и_parcellite2_[выполнение_скрипта:_k_sv_xscreensaver_2.sh] Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_sv_xscreensaver.sh] Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_sv_xscreensaver.sh] Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh] Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh] Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh] Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash] Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash] Память_[выполнение_скрипта:_free.sh] Запуск_эмулятора_терминала_lxterminal_[выполнение_скрипта:_lxterminal_0.bash] Завершение_работы_эмулятора_терминала_lxterminal_[выполнение_скрипта:_k_lxterminal_0.bash] Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash] Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash] Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash] Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash] Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash] Завершение_работы_скрипта:__buf_cx.sh"
select opt in $OPTIONS; do
if [ "$opt" = "Завершение_работы_скрипта:__buf_cx.sh" ]; then
printf "\nЗавершение работы скрипта: buf_cx.sh выполнено успешно\n"
sleep 3
exit
#"$HOME/k_zx_buf_cx.bash"
elif [ "$opt" = "Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_0.bash\n"
"$HOME/parcellite_0.bash"
elif [ "$opt" = "Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0.bash\n"
"$HOME/k_parcellite_0.bash"
elif [ "$opt" = "Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_1.bash\n"
"$HOME/parcellite_1.bash"
elif [ "$opt" = "Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_1.bash\n"
"$HOME/k_parcellite_1.bash"
elif [ "$opt" = "Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash]" ]; then
printf "\nВыполнен cкрипт: parcellite_0_1.bash\n"
"$HOME/parcellite_0_1.bash"
elif [ "$opt" = "Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash]" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0_1.bash\n"
"$HOME/k_parcellite_0_1.bash"
elif [ "$opt" = "Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite2_[выполнение_скрипта:_sv_xscreensaver_2.sh]" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver_2.sh\n"
"$HOME/sv_xscreensaver_2.sh"
elif [ "$opt" = "Завершение_работы_хранителя_экрана_и_parcellite2_[выполнение_скрипта:_k_sv_xscreensaver_2.sh]" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver_2.sh\n"
"$HOME/k_sv_xscreensaver_2.sh"
elif [ "$opt" = "Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_sv_xscreensaver.sh]" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver.sh\n"
"$HOME/sv_xscreensaver.sh"
elif [ "$opt" = "Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_sv_xscreensaver.sh]" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver.sh\n"
"$HOME/k_sv_xscreensaver.sh"
elif [ "$opt" = "Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh]" ]; then
printf "\nВыполнен cкрипт: xset_sost.sh\n"
"$HOME/xset_sost.sh"
elif [ "$opt" = "Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh]" ]; then
printf "\nВыполнен cкрипт: xset.sh\n"
"$HOME/xset.sh"
elif [ "$opt" = "Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh]" ]; then
printf "\nВыполнен cкрипт: k_xset.sh\n"
"$HOME/k_xset.sh"
elif [ "$opt" = "Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash]" ]; then
printf "\nВыполнен скрипт: zx_buf_po.bash\n"
"$HOME/zx_buf_po.bash"
elif [ "$opt" = "Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash]" ]; then
printf "\nВыполнен скрипт: k_zx_buf_po.bash\n\n"
sleep 3
"$HOME/k_zx_buf_po.bash"
elif [ "$opt" = "Память_[выполнение_скрипта:_free.sh]" ]; then
printf "\nВыполнен cкрипт: free.sh\n"
"$HOME/free.sh"
elif [ "$opt" = "Запуск_эмулятора_терминала_lxterminal_[выполнение_скрипта:_lxterminal_0.bash]" ]; then
printf "\nВыполнен cкрипт: lxterminal_0.bash\n"
"$HOME/lxterminal_0.bash"
elif [ "$opt" = "Завершение_работы_эмулятора_терминала_lxterminal_[выполнение_скрипта:_k_lxterminal_0.bash]" ]; then
printf "\nВыполнен скрипт: k_lxterminal_0.bash\n"
"$HOME/k_lxterminal_0.bash"
elif [ "$opt" = "Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash]" ]; then
printf "\nВыполнен скрипа: xterm_0.bash\n"
"$HOME/xterm_0.bash"
elif [ "$opt" = "Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash]" ]; then
printf "\nВыполнен cкрипт: k_xterm_all.bash\n"
"$HOME/k_xterm_all.bash"
elif [ "$opt" = "Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash]" ]; then
printf "\nВыполнен скрипа: mc_0.bash\n"
"$HOME/mc_0.bash"
elif [ "$opt" = "Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash]" ]; then
printf "\nВыполнен cкрипт: k_mc_0.bash\n"
"$HOME/k_mc_0.bash"
elif [ "$opt" = "Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash]" ]; then
printf "\nВыполнен скрипт: k_zx_buf_cx.bash\n\n"
sleep 3
"$HOME/k_zx_buf_cx.bash"
else
clear
printf "\nВы, ввели неверное значение! Пожалуйста, попробуйте еще раз!\n"
fi
done
Добавлено (10:48):
Лучше так. Моё предположение. А, Вы, как считаете?Скажите, пожалуйста.
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
И не лень кучу раз набивать тексты пунктов, рискуя ошибиться в какой-нибудь букве? И при необходимости что-то изменить придётся везде править.
Используйте переменные.
Используйте переменные.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
А вот остальные скрипты мне архивом на форум отправлять?
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
Если хотите, чтобы их точно никто не смотрел, то да. Если же цель обратная, выложите в публичный git.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Спасибо! Нужно на переменных скрипт выбора ПО (buf_cx.sh) реализовать. Точно.Bizdelnick писал: ↑24.05.2023 11:19И не лень кучу раз набивать тексты пунктов, рискуя ошибиться в какой-нибудь букве? И при необходимости что-то изменить придётся везде править.
Используйте переменные.
Попробую...
Добавлено (11:49):
Понятно. Спасибо!Bizdelnick писал: ↑24.05.2023 11:45Если хотите, чтобы их точно никто не смотрел, то да. Если же цель обратная, выложите в публичный git.
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Новая версия скрипта выбора ПО:
А можно ли как-нибудь лучше сделать (код)?
Скажите, пожалуйста.
Ввод переменных - предел улучшения.
Хотя может я и ошибаюсь.
...
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 4. Скрипт: buf_cx.sh для запуска ПО по выбору.
a='Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash]'
b='Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash]'
c='Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash]'
d='Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash]'
e='Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash]'
f='Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash]'
g='Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite2_[выполнение_скрипта:_sv_xscreensaver_2.sh]'
h='Завершение_работы_хранителя_экрана_и_parcellite2_[выполнение_скрипта:_k_sv_xscreensaver_2.sh]'
i='Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_sv_xscreensaver.sh]'
j='Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_sv_xscreensaver.sh]'
k='Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh]'
l='Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh]'
m='Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh]'
n='Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash]'
o='Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash]'
p='Память_[выполнение_скрипта:_free.sh]'
q='Запуск_эмулятора_терминала_lxterminal_[выполнение_скрипта:_lxterminal_0.bash]'
r='Завершение_работы_эмулятора_терминала_lxterminal_[выполнение_скрипта:_k_lxterminal_0.bash]'
s='Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash]'
t='Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash]'
u='Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash]'
v='Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash]'
w='Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash]'
z='Завершение_работы_скрипта:__buf_cx.sh'
OPTIONS="$a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $z"
select opt in $OPTIONS; do
if [ "$opt" = "$z" ]; then
printf "\nЗавершение работы скрипта: buf_cx.sh выполнено успешно\n"
sleep 3
exit
#"$HOME/k_zx_buf_cx.bash"
elif [ "$opt" = "$a" ]; then
printf "\nВыполнен cкрипт: parcellite_0.bash\n"
"$HOME/parcellite_0.bash"
elif [ "$opt" = "$b" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0.bash\n"
"$HOME/k_parcellite_0.bash"
elif [ "$opt" = "$c" ]; then
printf "\nВыполнен cкрипт: parcellite_1.bash\n"
"$HOME/parcellite_1.bash"
elif [ "$opt" = "$d" ]; then
printf "\nВыполнен cкрипт: k_parcellite_1.bash\n"
"$HOME/k_parcellite_1.bash"
elif [ "$opt" = "$e" ]; then
printf "\nВыполнен cкрипт: parcellite_0_1.bash\n"
"$HOME/parcellite_0_1.bash"
elif [ "$opt" = "$f" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0_1.bash\n"
"$HOME/k_parcellite_0_1.bash"
elif [ "$opt" = "$g" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver_2.sh\n"
"$HOME/sv_xscreensaver_2.sh"
elif [ "$opt" = "$h" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver_2.sh\n"
"$HOME/k_sv_xscreensaver_2.sh"
elif [ "$opt" = "$i" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver.sh\n"
"$HOME/sv_xscreensaver.sh"
elif [ "$opt" = "$j" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver.sh\n"
"$HOME/k_sv_xscreensaver.sh"
elif [ "$opt" = "$k" ]; then
printf "\nВыполнен cкрипт: xset_sost.sh\n"
"$HOME/xset_sost.sh"
elif [ "$opt" = "$l" ]; then
printf "\nВыполнен cкрипт: xset.sh\n"
"$HOME/xset.sh"
elif [ "$opt" = "$m" ]; then
printf "\nВыполнен cкрипт: k_xset.sh\n"
"$HOME/k_xset.sh"
elif [ "$opt" = "$n" ]; then
printf "\nВыполнен скрипт: zx_buf_po.bash\n"
"$HOME/zx_buf_po.bash"
elif [ "$opt" = "$o" ]; then
printf "\nВыполнен скрипт: k_zx_buf_po.bash\n\n"
sleep 3
"$HOME/k_zx_buf_po.bash"
elif [ "$opt" = "$p" ]; then
printf "\nВыполнен cкрипт: free.sh\n"
"$HOME/free.sh"
elif [ "$opt" = "$q" ]; then
printf "\nВыполнен cкрипт: lxterminal_0.bash\n"
"$HOME/lxterminal_0.bash"
elif [ "$opt" = "$r" ]; then
printf "\nВыполнен скрипт: k_lxterminal_0.bash\n"
"$HOME/k_lxterminal_0.bash"
elif [ "$opt" = "$s" ]; then
printf "\nВыполнен скрипа: xterm_0.bash\n"
"$HOME/xterm_0.bash"
elif [ "$opt" = "$t" ]; then
printf "\nВыполнен cкрипт: k_xterm_all.bash\n"
"$HOME/k_xterm_all.bash"
elif [ "$opt" = "$u" ]; then
printf "\nВыполнен скрипа: mc_0.bash\n"
"$HOME/mc_0.bash"
elif [ "$opt" = "$v" ]; then
printf "\nВыполнен cкрипт: k_mc_0.bash\n"
"$HOME/k_mc_0.bash"
elif [ "$opt" = "$w" ]; then
printf "\nВыполнен скрипт: k_zx_buf_cx.bash\n\n"
sleep 3
"$HOME/k_zx_buf_cx.bash"
else
clear
printf "\nВы, ввели неверное значение! Пожалуйста, попробуйте еще раз!\n"
fi
done
Скажите, пожалуйста.
Добавлено (20:30):
Я предполагаю, что никак "топорные" скрипты не улучшить...Ввод переменных - предел улучшения.
Хотя может я и ошибаюсь.
...
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
Убрать ненужную переменную OPTIONS, тогда в текстах пунктов можно станет использовать пробелы. Ну и имена переменных a, b, c… ни о чём не говорят, стоит всё же сделать их читаемыми (частично совпадающими с именами вызываемых скриптов, например).
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Понятно. Переделаю. Спасибо!Bizdelnick писал: ↑25.05.2023 08:37Убрать ненужную переменную OPTIONS, тогда в текстах пунктов можно станет использовать пробелы. Ну и имена переменных a, b, c… ни о чём не говорят, стоит всё же сделать их читаемыми (частично совпадающими с именами вызываемых скриптов, например).
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Всё равно, от переменной OPTIONS не получается уйти(((
Я заменил OPTIONS переменную на переменную zz
Новая версия скрипта buf_cx
Как быть?
Скажите, пожалуйста.
Я заменил OPTIONS переменную на переменную zz
Новая версия скрипта buf_cx
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 5. Скрипт: buf_cx.sh для запуска ПО по выбору.
a='Запуск_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_parcellite_0.bash]'
b='Завершение_работы_менеджера_буфера_обмена_parcellite_[выполнение_скрипта:_k_parcellite_0.bash]'
c='Запуск_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_parcellite_1.bash]'
d='Завершение_работы_менеджера_буфера_обмена_parcellite2_[выполнение_скрипта:_k_parcellite_1.bash]'
e='Запуск_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_parcellite_0_1.bash]'
f='Завершение_работы_менеджеров_буфера_обмена_parcellite_и_parcellite2_[выполнение_скрипта:_k_parcellite_0_1.bash]'
g='Запуск_хранителя_экрана:_xscreensaver-demo_и_менеджера_буфера_обмена:_parcellite2_[выполнение_скрипта:_sv_xscreensaver_2.sh]'
h='Завершение_работы_хранителя_экрана_и_parcellite2_[выполнение_скрипта:_k_sv_xscreensaver_2.sh]'
i='Запуск_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_sv_xscreensaver.sh]'
j='Завершение_работы_хранителя_экрана:_xscreensaver-demo_[выполнение_скрипта:_k_sv_xscreensaver.sh]'
k='Просмотр_состояния_DPMS_[выполнение_скрипта:_xset_sost.sh]'
l='Отключение_DPMS_с_помощью_xset_[выполнение_скрипта:_xset.sh]'
m='Завершение_процесса_xset_[выполнение_скрипта:_k_xset.sh]'
n='Подскрипт_для_запуска_ПО_по_выбору_[выполнение_скрипта:_zx_buf_po.bash]'
o='Завершение_процесса:_zx_buf_po.bash_[выполнение_скрипта:_k_zx_buf_po.bash]'
p='Память_[выполнение_скрипта:_free.sh]'
q='Запуск_эмулятора_терминала_lxterminal_[выполнение_скрипта:_lxterminal_0.bash]'
r='Завершение_работы_эмулятора_терминала_lxterminal_[выполнение_скрипта:_k_lxterminal_0.bash]'
s='Запуск_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_xterm_0.bash]'
t='Завершение_работы_эмулятора-/-ов_терминала_xterm_[выполнение_скрипта:_k_xterm_all.bash]'
u='Запуск_ФМ_MC_[выполнение_скрипта:_mc_0.bash]'
v='Завершение_работы_ФМ_MC_[выполнение_скрипта:_k_mc_0.bash]'
w='Завершение_процесса:_zx_buf_cx.bash_[выполнение_скрипта:_k_zx_buf_cx.bash]'
z='Завершение_работы_скрипта:__buf_cx.sh'
#OPTIONS="$a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $z"
zz="$a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $z"
#select opt in $OPTIONS; do
select opt in $zz; do
if [ "$opt" = "$z" ]; then
printf "\nЗавершение работы скрипта: buf_cx.sh выполнено успешно\n"
sleep 3
exit
#"$HOME/k_zx_buf_cx.bash"
elif [ "$opt" = "$a" ]; then
printf "\nВыполнен cкрипт: parcellite_0.bash\n"
"$HOME/parcellite_0.bash"
elif [ "$opt" = "$b" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0.bash\n"
"$HOME/k_parcellite_0.bash"
elif [ "$opt" = "$c" ]; then
printf "\nВыполнен cкрипт: parcellite_1.bash\n"
"$HOME/parcellite_1.bash"
elif [ "$opt" = "$d" ]; then
printf "\nВыполнен cкрипт: k_parcellite_1.bash\n"
"$HOME/k_parcellite_1.bash"
elif [ "$opt" = "$e" ]; then
printf "\nВыполнен cкрипт: parcellite_0_1.bash\n"
"$HOME/parcellite_0_1.bash"
elif [ "$opt" = "$f" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0_1.bash\n"
"$HOME/k_parcellite_0_1.bash"
elif [ "$opt" = "$g" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver_2.sh\n"
"$HOME/sv_xscreensaver_2.sh"
elif [ "$opt" = "$h" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver_2.sh\n"
"$HOME/k_sv_xscreensaver_2.sh"
elif [ "$opt" = "$i" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver.sh\n"
"$HOME/sv_xscreensaver.sh"
elif [ "$opt" = "$j" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver.sh\n"
"$HOME/k_sv_xscreensaver.sh"
elif [ "$opt" = "$k" ]; then
printf "\nВыполнен cкрипт: xset_sost.sh\n"
"$HOME/xset_sost.sh"
elif [ "$opt" = "$l" ]; then
printf "\nВыполнен cкрипт: xset.sh\n"
"$HOME/xset.sh"
elif [ "$opt" = "$m" ]; then
printf "\nВыполнен cкрипт: k_xset.sh\n"
"$HOME/k_xset.sh"
elif [ "$opt" = "$n" ]; then
printf "\nВыполнен скрипт: zx_buf_po.bash\n"
"$HOME/zx_buf_po.bash"
elif [ "$opt" = "$o" ]; then
printf "\nВыполнен скрипт: k_zx_buf_po.bash\n\n"
sleep 3
"$HOME/k_zx_buf_po.bash"
elif [ "$opt" = "$p" ]; then
printf "\nВыполнен cкрипт: free.sh\n"
"$HOME/free.sh"
elif [ "$opt" = "$q" ]; then
printf "\nВыполнен cкрипт: lxterminal_0.bash\n"
"$HOME/lxterminal_0.bash"
elif [ "$opt" = "$r" ]; then
printf "\nВыполнен скрипт: k_lxterminal_0.bash\n"
"$HOME/k_lxterminal_0.bash"
elif [ "$opt" = "$s" ]; then
printf "\nВыполнен скрипа: xterm_0.bash\n"
"$HOME/xterm_0.bash"
elif [ "$opt" = "$t" ]; then
printf "\nВыполнен cкрипт: k_xterm_all.bash\n"
"$HOME/k_xterm_all.bash"
elif [ "$opt" = "$u" ]; then
printf "\nВыполнен скрипа: mc_0.bash\n"
"$HOME/mc_0.bash"
elif [ "$opt" = "$v" ]; then
printf "\nВыполнен cкрипт: k_mc_0.bash\n"
"$HOME/k_mc_0.bash"
elif [ "$opt" = "$w" ]; then
printf "\nВыполнен скрипт: k_zx_buf_cx.bash\n\n"
sleep 3
"$HOME/k_zx_buf_cx.bash"
else
clear
printf "\nВы, ввели неверное значение! Пожалуйста, попробуйте еще раз!\n"
fi
done
Скажите, пожалуйста.
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
Просто не используйте тут лишнюю переменную.
Код: Выделить всё
select opt in "$a" "$b" "$c"; do
Код: Выделить всё
#!/bin/bash
opts+=('Запуск менеджера буфера обмена parcellite [выполнение скрипта parcellite_0.bash]')
scripts+=(parcellite_0.bash)
opts+=('Завершение работы менеджера буфера обмена parcellite [выполнение скрипта k_parcellite_0.bash]')
scripts+=(k_parcellite_0.bash)
# и т. д.
select opt in "${opts[@]}"; do
for (( i=0; i<${#opts[@]}; i++ )); do
if [ "$opt" = "${opts[$i]}" ]; then
"${scripts[$i]}" && echo "Выполнен скрипт ${scripts[$i]}" || echo "Ошибка при выполнении ${scripts[$i]}"
break
fi
done
done
P. P. S. Не надо называть переменные a, b, c, zz и т. п. Давайте им осмысленные имена.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Спасибо! Понял.
Добавлено (14:07):
Спасибо! Правда, посложнее дело будет...Bizdelnick писал: ↑27.05.2023 13:46Или, коль скоро у Вас всё равно bash, используйте массив. А лучше — два.
...
Добавлено (14:12):
"Вскрытие" покажет!

В смысле, нужно пробовать...
...
Добавлено (14:25):
Я понимаю, что в .xinitrc можно "запихать"Bizdelnick писал: ↑27.05.2023 13:46P. S. Понятия не имею, зачем может понадобиться вручную запускать и убивать parcellite вместо того, чтобы автоматически запускать его с началом сессии и оставлять работать до её завершения.

А вот, например, мне не нужен parcellite
и никакой другой софт, кроме браузера...
...
Вот почему, я со скриптом выбора ПО и заморочился.
+ Корректное "прибитие" / завершение ПО // процесса с удалением файла *.pid из /tmp
...
Добавлено (14:33):
Да я торопился с вопросом по новой версии скрипта. Честно, не успел(((Bizdelnick писал: ↑27.05.2023 13:46P. P. S. Не надо называть переменные a, b, c, zz и т. п. Давайте им осмысленные имена.
Дам конечно, осмысленные имена...
...
-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Новая версия скрипта buf_cx.sh
(без массива), решил оставить версию скрипта buf_cx.sh
Код: Выделить всё
#!/bin/bash
#2023xxxx Ver. 6. Скрипт: buf_cx.sh для запуска ПО по выбору.
parc_0='Запуск менеджера буфера обмена parcellite [выполнение скрипта: parcellite_0.bash]'
k_parc_0='Завершение работы менеджера буфера обмена parcellite [выполнение скрипта: k_parcellite_0.bash]'
parc_1='Запуск менеджера буфера обмена parcellite2 [выполнение скрипта: parcellite_1.bash]'
k_parc_1='Завершение работы менеджера буфера обмена parcellite2 [выполнение скрипта: k_parcellite_1.bash]'
parc_0_1='Запуск менеджеров буфера обмена parcellite и parcellite2 [выполнение скрипта: parcellite_0_1.bash]'
k_parc_0_1='Завершение работы менеджеров буфера обмена parcellite и parcellite2 [выполнение скрипта: k_parcellite_0_1.bash]'
xscreen_parc_1='Запуск хранителя экрана: xscreensaver-demo и менеджера буфера обмена: parcellite2 [выполнение скрипта: sv_xscreensaver_2.sh]'
k_xscreen_parc_1='Завершение работы хранителя экрана и parcellite2 [выполнение скрипта: k_sv_xscreensaver_2.sh]'
xscreen='Запуск хранителя экрана: xscreensaver-demo [выполнение скрипта: sv_xscreensaver.sh]'
k_xscreen='Завершение работы хранителя экрана: xscreensaver-demo [выполнение скрипта: k_sv_xscreensaver.sh]'
dpms_sost='Просмотр состояния DPMS [выполнение скрипта: xset_sost.sh]'
dpms_off='Отключение DPMS с помощью xset [выполнение скрипта: xset.sh]'
dpms_on='Завершение процесса xset [выполнение скрипта: k_xset.sh]'
zx_buf_po='Подскрипт для запуска ПО по выбору [выполнение скрипта: zx_buf_po.bash]'
k_zx_buf_po='Завершение процесса: zx_buf_po.bash [выполнение скрипта: k_zx_buf_po.bash]'
free='Память [выполнение скрипта: free.sh]'
lxterminal='Запуск эмулятора терминала lxterminal [выполнение скрипта: lxterminal_0.bash]'
k_lxterminal='Завершение работы эмулятора терминала lxterminal [выполнение скрипта: k_lxterminal_0.bash]'
xterm='Запуск эмулятора-/-ов терминала xterm [выполнение скрипта: xterm_0.bash]'
k_xterm='Завершение работы эмулятора-/-ов_терминала xterm [выполнение скрипта: k_xterm_all.bash]'
mc='Запуск ФМ MC [выполнение скрипта: mc_0.bash]'
k_mc='Завершение работы ФМ MC [выполнение скрипта: k_mc_0.bash]'
k_zx_buf_cx='Завершение процесса: zx_buf_cx.bash [выполнение скрипта: k_zx_buf_cx.bash]'
buf_cx_exit='Завершение работы скрипта: buf_cx.sh'
select opt in "$parc_0" "$k_parc_0" "$parc_1" "$k_parc_1" "$parc_0_1" "$k_parc_0_1" "$xscreen_parc_1" "$k_xscreen_parc_1" "$xscreen" "$k_xscreen" "$dpms_sost" "$dpms_off" "$dpms_on" "$zx_buf_po" "$k_zx_buf_po" "$free" "$lxterminal" "$k_lxterminal" "$xterm" "$k_xterm" "$mc" "$k_mc" "$k_zx_buf_cx" "$buf_cx_exit" ; do
if [ "$opt" = "$buf_cx_exit" ]; then
printf "\nЗавершение работы скрипта: buf_cx.sh выполнено успешно\n"
sleep 3
exit
#"$HOME/k_zx_buf_cx.bash"
elif [ "$opt" = "$parc_0" ]; then
printf "\nВыполнен cкрипт: parcellite_0.bash\n"
"$HOME/parcellite_0.bash"
elif [ "$opt" = "$k_parc_0" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0.bash\n"
"$HOME/k_parcellite_0.bash"
elif [ "$opt" = "$parc_1" ]; then
printf "\nВыполнен cкрипт: parcellite_1.bash\n"
"$HOME/parcellite_1.bash"
elif [ "$opt" = "$k_parc_1" ]; then
printf "\nВыполнен cкрипт: k_parcellite_1.bash\n"
"$HOME/k_parcellite_1.bash"
elif [ "$opt" = "$parc_0_1" ]; then
printf "\nВыполнен cкрипт: parcellite_0_1.bash\n"
"$HOME/parcellite_0_1.bash"
elif [ "$opt" = "$k_parc_0_1" ]; then
printf "\nВыполнен cкрипт: k_parcellite_0_1.bash\n"
"$HOME/k_parcellite_0_1.bash"
elif [ "$opt" = "$xscreen_parc_1" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver_2.sh\n"
"$HOME/sv_xscreensaver_2.sh"
elif [ "$opt" = "$k_xscreen_parc_1" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver_2.sh\n"
"$HOME/k_sv_xscreensaver_2.sh"
elif [ "$opt" = "$xscreen" ]; then
printf "\nВыполнен cкрипт: sv_xscreensaver.sh\n"
"$HOME/sv_xscreensaver.sh"
elif [ "$opt" = "$k_xscreen" ]; then
printf "\nВыполнен cкрипт: k_sv_xscreensaver.sh\n"
"$HOME/k_sv_xscreensaver.sh"
elif [ "$opt" = "$dpms_sost" ]; then
printf "\nВыполнен cкрипт: xset_sost.sh\n"
"$HOME/xset_sost.sh"
elif [ "$opt" = "$dpms_off" ]; then
printf "\nВыполнен cкрипт: xset.sh\n"
"$HOME/xset.sh"
elif [ "$opt" = "$dpms_on" ]; then
printf "\nВыполнен cкрипт: k_xset.sh\n"
"$HOME/k_xset.sh"
elif [ "$opt" = "$zx_buf_po" ]; then
printf "\nВыполнен скрипт: zx_buf_po.bash\n"
"$HOME/zx_buf_po.bash"
elif [ "$opt" = "$k_zx_buf_po" ]; then
printf "\nВыполнен скрипт: k_zx_buf_po.bash\n\n"
sleep 3
"$HOME/k_zx_buf_po.bash"
elif [ "$opt" = "$free" ]; then
printf "\nВыполнен cкрипт: free.sh\n"
"$HOME/free.sh"
elif [ "$opt" = "$lxterminal" ]; then
printf "\nВыполнен cкрипт: lxterminal_0.bash\n"
"$HOME/lxterminal_0.bash"
elif [ "$opt" = "$k_lxterminal" ]; then
printf "\nВыполнен скрипт: k_lxterminal_0.bash\n"
"$HOME/k_lxterminal_0.bash"
elif [ "$opt" = "$xterm" ]; then
printf "\nВыполнен скрипа: xterm_0.bash\n"
"$HOME/xterm_0.bash"
elif [ "$opt" = "$k_xterm" ]; then
printf "\nВыполнен cкрипт: k_xterm_all.bash\n"
"$HOME/k_xterm_all.bash"
elif [ "$opt" = "$mc" ]; then
printf "\nВыполнен скрипа: mc_0.bash\n"
"$HOME/mc_0.bash"
elif [ "$opt" = "$k_mc" ]; then
printf "\nВыполнен cкрипт: k_mc_0.bash\n"
"$HOME/k_mc_0.bash"
elif [ "$opt" = "$k_zx_buf_cx" ]; then
printf "\nВыполнен скрипт: k_zx_buf_cx.bash\n\n"
sleep 3
"$HOME/k_zx_buf_cx.bash"
else
clear
printf "\nВы, ввели неверное значение! Пожалуйста, попробуйте еще раз!\n"
fi
done
Добавлено (08:25):
Простенько и со вкусом
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
Сложненько и безвкусно. К чему эти однотипные elif? википедия://DRY
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1181
- ОС: Slackware
Re: Завершить процесс
igor@igor
Мне кажется, когда столько else if, то обычно используют case.
Мне кажется, когда столько else if, то обычно используют case.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
-
- Модератор
- Сообщения: 20348
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Завершить процесс
Но не в случае, когда в них всех одно и то же.
igor@igor, а зачем Ваш скрипт врёт о выполнении каждого скрипта ещё до того, как тот запущен? И для чего все эти sleep'ы?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 2477
- ОС: Gentoo
Re: Завершить процесс
Из серии выстрели себе в ногу. 

-
- Сообщения: 1165
- ОС: Debian GNU/Linux, wheezy-amd64
Re: Завершить процесс
Эх! Предполагал, что в этот раз "круто" запилил! А на самом деле... ((((((((((Bizdelnick писал: ↑28.05.2023 11:05Сложненько и безвкусно. К чему эти однотипные elif? википедия://DRY
Добавлено (23:39):
Как / почему врёт?? Где sleep'ы?Bizdelnick писал: ↑29.05.2023 00:02igor@igor, а зачем Ваш скрипт врёт о выполнении каждого скрипта ещё до того, как тот запущен? И для чего все эти sleep'ы?
Скажите, пожалуйста.
Добавлено (23:42):
Эх!
-
- Сообщения: 2477
- ОС: Gentoo