J'ai ce simple script phpphp appeler problème bash
<?php
echo '<pre>';
// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = $output = system ("~/public_html/cgi-bin/srch.sh &> ~/public_html/errors.txt",$retval);
// Printing additional info
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>
qui repose sur srch.sh:
#!/bin/bash
for i in ~/mail/home/user/mail/domain.com/josh/cur/*
do
grep -i Value $i . &> ~/public_html/yesno.txt;
done
Cependant, tout ce qui est affichage dans le b rowser est retVal 1, et pas l'erreur est enregistrée dans l'un des fichiers de texte. Ai-je mal mélangé stderr et stdout, ou manqué autre chose?
Je suis sur un serveur partagé sans accès au shell, et doit être lancé en le téléchargeant et via un navigateur, donc je ne peux pas l'exécuter directement. Absolument rien n'est stocké dans errors.txt –