использование сна с несколькими командами - PullRequest
0 голосов
/ 06 декабря 2010

с какой командой мы можем запустить пять команд в фоновом режиме, каждая из которых будет спать 10 секунд

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

В оболочке вы можете просто сделать это:

#!/bin/sh
sleep 10 && command1 &
sleep 10 && command2 &
sleep 10 && command3 &
sleep 10 && command4 &
sleep 10 && command5 &

& в конце указывает команде на фон.

Чтобы превратить это в скрипт общего назначения, вы можете сделать что-то вроде:

#!/bin/sh
sleep 10 && $1 &
sleep 10 && $2 &
sleep 10 && $3 &
sleep 10 && $4 &
sleep 10 && $5 &

Использование:

./script 'echo 1' 'echo 2' 'echo 3' 'echo 4' 'echo 5'

Примечание: вы обычно хотите заключать в кавычки параметры, передаваемые в сценарии оболочки (т.е. "$1"), чтобы пробелы не разбивались на слова Поскольку я этого не делал, аргументы разделяются на слова, поэтому вместо && "echo 1" он становится && echo 1. Это прекрасно работает для нашего тривиального примера, но не тогда, когда вы хотите запустить '/usr/bin/command with spaces'

0 голосов
/ 06 декабря 2010

Вы имеете в виду, как это?Звучит странно для меня

sleep 10 &
sleep 10 &
sleep 10 &
sleep 10 &
sleep 10 &
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...