Выполнить две команды оболочки в одном выражении exec php

Я хочу отобразить все файлы, которые были изменены после указанной даты.

команды

touch --date '2011-09-19 /home/  , find /home/

Как я могу выполнить эти две команды в одной инструкции exec. Спасибо заранее

Ответы

Ответ 1

Вы можете использовать либо ;, либо && для разделения команд. ; выполняет обе команды безоговорочно. Если первый не удался, второй все еще работает. Используя &&, вторая команда зависит от первой. Если первая команда завершилась неудачей, вторая не будет запущена.

command1 ; command2     (run both uncondtionally)
command1 && command2     (run command2 only if command1 succeeds)

Ответ 2

Отделите их точкой с запятой (;). Пример:

exec("touch --date '2011-09-19' /home/; find /home/");

Ответ 3

Так я сделал это одновременно, кодируя большие пальцы, а затем flv video.. Мне нужно сгенерировать 2 больших пальца из avi файла. После больших пальцев мне нужно преобразовать одни и те же avi в flv или что угодно. Итак, вот код, который я обычно использовал.

$command_one = "do whatever the script does best";
$command_two = "do whatever the script does second best";
//execute and redirect standard stream ..
@exec($command_one."&& ".$command_two.">/dev/null 1>/dev/null 2>/dev/null &");

Вы также можете запустить массив команд с exec, если хотите:)

foreach($crapatoids as $crap){

$command_name = $crap;
//exec the crap below
@exec ($command_name." >/dev/null 1>/dev/null 2>/dev/null &");
}

Ответ 4

Разделитель с запятой позволяет запускать несколько команд в одной строке.

<?php
    $output = shell_exec("touch --date '2011-09-19' /home/; find /home/");
    echo "<pre>" . $output . "</pre>";
?>