LINUX.ORG.RU

[похапэ][ЧЯДНТ]вызов скрипта

 


0

2
<?
set_time_limit(0);
system("sh check.sh ".$_GET['nick']);
?>

на сервере в этой же папке «sh check.sh somebody» работает нормально, через php поработает, как будто скрипту не были даны параметры.

Помогите, пожалуйста...

★★★★★

Последнее исправление: derlafff (всего исправлений: 3)

ну и еще ради прикола попробуй в check.sh добавить в начало

#!/bin/sh

и запускать system("./check.sh ...

isden ★★★★★
()
Ответ на: комментарий от isden

вот:

sh check.sh qwerty
FAIL

FAIL возвращает скрипт в случае неудачи. Вот быдлокод, если что:

comments=`wget -q -O - http://www.linux.org.ru/people/$1/profile | grep 'Число комментариев: ' | sed -e 's%<b>Число комментариев:%%;s%</b>%%;s% %%g'`;
./stroh.sh $1 $comments;
./stroj.py $1;
if [ -x "./$1.png" ]; then
  echo "<a href=/bio/$1.png>done</a>";
else
  echo;
  echo "FAIL";
  echo "comments="$comments;
  echo "parametrs="$1 $2;
fi;
derlafff ★★★★★
() автор топика
Ответ на: комментарий от isden

пробовал и «bash check.sh» и «sh check.sh». Так же добавлял «#/bin/bash» и «#!/bin/sh» в начало

все равно не работает

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

./check.sh изначально было, то же самое...

derlafff ★★★★★
() автор топика
Ответ на: комментарий от Deleted

самый первый wget - качает то.

сейчас проверю в остальных скриптах

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

сделал вот так:

[~/www/test111]$ cat check.sh
echo $1
[~/www/test111]$ cat test.php
<?php
set_time_limit(0);
system(«sh check.sh ».$_GET['nick']);
?>

через test.php?nick=111 показывает 111.

isden ★★★★★
()
Ответ на: комментарий от derlafff

так, вроде-бы что-то заработало....копаю..

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

А зачем вообще shell-скрипт?! Почему это не сделать сразу на php?
Или (судя по коду) вы просто плохо с ним знакомы? Тогда на php.net отличная документация по всем функциям.

avol
()

Попробуйте дописать в скрипт set -x и посмотреть.

AITap ★★★★★
()
Ответ на: комментарий от avol

ттюх

for i in `seq 0 50 $2`; do wget -O - "http://www.linux.org.ru/show-comments.jsp?nick=$1&offset=$i" | egrep "[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]" | sed  "s/&nbsp;/ /" >> "$1"; done

конвертай

а еще там коду на python, и много других вкусностей, как обработка больших файлов

derlafff ★★★★★
() автор топика
Ответ на: комментарий от derlafff

> похоже, пока я копался я окончательно все сломал - даже это не работает

а проверь safe_mode в похапе. меня терзают смутные сомнения...

isden ★★★★★
()
Ответ на: комментарий от derlafff

Ну мне это конвертать не нужно, но сложностей не вижу — регулярки в php отличные, хороший perl-диалект. Циклы, как ни странно, в php тоже есть.
Код на питоне смотреть лень, но не сомневаюсь, что ничего сложного для переписания на php там нет. Обработка больших файлов возможно, если нужно, файлы можно читать фрагментарно.

Хотя дело ваше, просто это, на мой взгляд, какое-то дикое костылестроение, с дёрганьем аж трёх скриптовых языков.

avol
()
system("/bin/sh '".escapeshellarg(dirname(__FILE__))."/check.sh' '".
        escapeshellarg($_GET['nick'])."'") 
nu11 ★★★★★
()
Ответ на: комментарий от derlafff

> ладно, буду пытаццо прикручивать скрипт через cgi-bin

Не проще ли сразу юзать питон через cgi?

Bad_Habit
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.