В оболочке вы можете просто сделать это:
#!/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'