2016-07-15 12 views
1

Я хочу многократно запускать несколько команд с интервалом времени с помощью скрипта. Я попытался этоМногократное выполнение нескольких команд с использованием сценария

----------------test_script--------------- 
while true;do 
ls -l >>output.txt 
sleep 3 
done 


while true;do 
cat file.txt 
sleep 5 
done 

я хочу работать как в то время как петли в то же время .Когда я бегу выше сценарий, только первое время цикла работает и выход логинсервера -l перенаправляется в файл .Как я может выполнять оба цикла одновременно из сценария

+1

Вы в любом случае используете бесконечные петли. Поэтому почему бы не поставить оба 'ls' и' cat' в том же 'while'. – Fazlin

+1

Используйте '&' для запуска команды в фоновом режиме. – choroba

+0

@choroba: Но это немного связано с этим. Возможно, я смотрел на один из ваших ранних [\ [решение \]] (http://stackoverflow.com/a/19543286/1620779). – sjsam

ответ

1

Один из способов сделать это - запустить одну из петель в фоновом режиме и другую на переднем плане, как показано ниже.

#!/bin/bash 

while true;do 
    ls -l >>output.txt 
    sleep 3 
done &    # Runs the first while loop in the background and passes to the next while loop 

while true;do 
    cat file.txt 
    sleep 5 
done 
+0

Было бы более эффективно перенаправить на 'output.txt' только один раз, после' done'. Затем вы можете использовать переписывание, если хотите, для удаления любого предыдущего содержимого в файле. – tripleee

Смежные вопросы