PHP erstellter Bash-code funktioniert nicht?!

wallcity

New Member
Hallo ich versuche gerade mit PHP eine Shell Datei zu erstellen mit einem Code der normalerweise funktionieren sollte nur immer wieder kommt dieser bekannte Fehler:
Code:
-bash: ./test.sh: /bin/bashif: bad interpreter: No such file or directory

Da ich eigentlich noch keine Ahnung von Shell/Bash habe kann ich leider damit nichts anfangen, ich hoffe aber ihr.

Also hier ist der PHP Code:
PHP:
<?php
$handle = fopen("test.sh", "w");
$contents = '#!/bin/bash
if [ "$1" = "8b745730815d0c90b5d7561dcb5efe50" ]; then
		nohup /files/linux/file argument >/dev/null &
		echo $!
else
		echo "INVALID HASH"
fi';
fwrite ($handle, $contents);
fclose ($handle);
?>

MFG wallcity
 
Okay vielen dank schonmal nun sagt der mir aber folgendes Problem mit folgendem Code:

PHP:
<?php
$handle = fopen("test.sh", "w");
$contents = '#!/bin/bash\n
if [ "$1" = "8b745730815d0c90b5d7561dcb5efe50" ]; then\n
		nohup /home/da-radio/public_html/shoutcast.da-radio.info/public/files/linux/sc_trans /home/da-radio/public_html/shoutcast.da-radio.info/public/files/linux/demo.conf >/dev/null &\n
		echo $!\n
else\n
		echo "INVALID HASH"\n
fi\n';
fwrite ($handle, $contents);
fclose ($handle);
?>

Und der Fehler:
Code:
test.sh: line 8: syntax error: unexpected end of file

Was kann ich nun machen?
 
Also die geschrieben Datei sieht wie folgt aus:

Code:
#!/bin/bash

if [ "$1" = "8b745730815d0c90b5d7561dcb5efe50" ]; then
		nohup /home/da-radio/public_html/shoutcast.da-radio.info/public/files/linux/sc_trans /home/da-radio/public_html/shoutcast.da-radio.info/public/files/linux/demo.conf >/dev/null &
		echo $!
else
		echo "INVALID HASH"
fi

MFG wallcity
 
Wenn das wirklich die geschriebene Datei ist (also das Endergebnis deines PHP-Skripts), dann funktioniert das bei mir.
 
Wenn das wirklich die geschriebene Datei ist (also das Endergebnis deines PHP-Skripts), dann funktioniert das bei mir.

Also irgendwie mach ich immer noch was falsch, ich geh jetzt mal schlafen, schreib euch morgen wieder, bis dann danke nochmals!
 
Mit Single-Quotes werden Escape-Sequenzen wie \n nicht interpretiert sondern literal ausgegeben.

Du möchtest dich mit HEREDOC bzw. NOWDOC in PHP beschäftigen.
 
Back
Top