Задать вопрос
@Kama3ukc

Как часть скрипта «выкинуть» или обернуть в скрин?

Доброго времени суток. У меня такой появился вопросик. Я ещё начинающий "писарь"=) Так вот есть кое какие наработки в баше. Так вот можно ли каким нибудь образом к примеру часть скрипта (его выполнение) обернуть в скрин?! Ну чтоб он бы не "создавал очередь" так сказать?!

P.S За ранее спасибо!
  • Вопрос задан
  • 129 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
Все способы чем-то различаются

#!/bin/bash
# отправить в бекграунд
source /path/to/sub_script.sh & 

# отправить в бекграунд и отвязаться от текущей консоли
source /path/to/sub_script.sh &!  

# man exec
exec /path/to/sub_script.sh

# man nohup
nohup /path/to/sub_script.sh

# cat << EOF | nohup sh
# cat << EOF | exec sh
# cat << EOF | sh &!
cat << EOF | sh &

# content of my sub_script.sh
echo `date` > /tmp/123

EOF


# замечание
# sh != bash
# если у тебя скрипт оттестирован на баше, то делай cat << EOF | nohup bash
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Часть скрипта вряд ли, но это можно сделать с отдельной командой, либо сохранить часть скрипта в другой скрипт и вызывать его в фоне с nohup

Но вы ваш вопрос уточните, каким-нить примером, а то не очень понятно что вы хотите
Ответ написан
@abcd0x00
Так вот можно ли каким нибудь образом к примеру часть скрипта (его выполнение) обернуть в скрин?

Можно запустить её в фоновом режиме, добавив амперсанд на конце.
Пример
#!/bin/bash

func1()
{
    for i in {1..5}; do
        echo 1
        sleep 2
    done
}


func2()
{
    for i in {1..5}; do
        echo 2
        sleep 4
    done
}

func3()
{
    echo 3
    func1 &
    sleep 1
    echo 4
    func2 &
    sleep 1
    echo 5
    wait
}

func3

exit 0

Вывод
[guest@localhost sh]$ ./t.sh 
3
1
4
2
1
5
1
2
1
1
2
2
2
[guest@localhost sh]$

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы