Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE \`db0815\`;$"
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
**Update:** Alles zurück. Hier wird ein Name für SQL, Geschmacksrichtung MySQL erzeugt, der Backtick soll von der Shell aber nicht angefasst werden. Das ist also richtig.
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE \`db0815\`;$"
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
Update: Alles zurück. Hier wird ein Name für SQL, Geschmacksrichtung MySQL erzeugt. Das ist also richtig.
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE \`db0815\`;$"
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
Update: Alles zurück. Hier wird ein Name für SQL, Geschmacksrichtung MySQL erzeugt. Ist alles richtig.
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE '
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
Update: Alles zurück. Hier wird ein Name für SQL, Geschmacksrichtung MySQL erzeugt. Ist alles richtig.
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE '
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
Du hast zwei mal `[BACKSLASH][BACKTICK]` notiert, wolltest aber wohl `[BACKSLASH][EINFACHQUOTA]`, also `\'`.
Auch in der Shell haben die Backticks eine spezielle Bedeutung: Was darin steht, wird ausgeführt und dann die Stelle durch den Output ersetzt. Und Du erzeigst ja gerade einen Befehl, der von der Shell ausgeführt werden soll. Das kann Effekte haben, die „höchst unerwartet und unwillkommen“ sind.
Versuche mal in der Bash:
~~~BASH
a=`ls -al`;
echo 'Huch';
echo $a;
~~~
und in PHP
~~~PHP
$a=`ls -al`;
echo 'Huch' . PHP_EOL;
echo $a. PHP_EOL ;
~~~
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im resultierenden String …
~~~
| grep -vP
"^USE '
~~~
… den Du als Teil eines Befehls an die Shell „verfüttern“ willst.
In der Shell oder Bash endet nun aber ein Befehl entweder am `;` oder am Zeilenumbruch… **Das ist also nicht das, was Du willst**.
By the way:
~~~
… \` …
~~~
Du hast zwei mal `[BACKSLASH][BACKTICK]` notiert, wolltest aber wohl `[BACKSLASH][EINFACHQUOTA]`, also `\'`.
Auch in der Shell haben die Backticks eine spezielle Bedeutung: Was darin steht, wird ausgeführt und dann die Stelle durch den Output ersetzt. Und Du erzeigst ja gerade einen Befehl, der von der Shell ausgeführt werden soll. Das kann Effekte haben, die „höchst unerwartet und unwillkommen“ sind.
Versuche mal in der Bash:
~~~
a=`ls -al`;
echo 'Huch';
echo $a;
~~~
und in PHP
~~~
$a=`ls -al`;
echo 'Huch' . PHP_EOL;
echo $a. PHP_EOL ;
~~~#
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im String
~~~
' | grep -vP
"^USE \''
~~~
Und in der Shell oder Bash endet ein Befehl mit einem Zeilenumbruch… Das ist also nicht das, was Du willst.
By the way:
~~~
… \` …
~~~
Du hast zwei mal `[BACKSLASH][BACKTICK]` notiert, wolltest aber wohl `[BACKSLASH][EINFACHQUOTA]`, also `\'`.
Auch in der Shell haben die Backticks eine spezielle Bedeutung: Was darin steht, wird ausgeführt und dann die Stelle durch den Output ersetzt. Und Du erzeigst ja gerade einen Befehl, der von der Shell ausgeführt werden soll. Das kann Effekte haben, die „höchst unerwartet und unwillkommen“ sind.
Versuche mal in der Bash:
~~~
a=`ls -al`;
echo 'Huch';
echo $a;
~~~
und in PHP
~~~
$a=`ls -al`;
echo 'Huch' . PHP_EOL;
echo $a. PHP_EOL ;
~~~#
Kastensatz des Programmierers
bearbeitet von Raketenwilli> ~~~PHP
> $backupoption = ' | grep -vP
> "^USE \`'
> . $backup_db
> . '\`;$"'
> ;
> ~~~
>
>
> Warum ein Verkettungsoperator zwischen 2 Strings?
Oh. Dann hast Du aber den Zeilenumbruch im String
~~~
' | grep -vP
"^USE \''
~~~
By the way:
~~~
… \` …
~~~
Du hast zwei mal `[BACKSLASH][BACKTICK]` notiert, wolltest aber wohl `[BACKSLASH][EINFACHQUOTA]`, also `\'`.
Auch in der Shell haben die Backticks eine spezielle Bedeutung: Was darin steht, wird ausgeführt und dann die Stelle durch den Output ersetzt. Und Du erzeigst ja gerade einen Befehl, der von der Shell ausgeführt werden soll. Das kann Effekte haben, die „höchst unerwartet und unwillkommen“ sind.
Versuche mal in der Bash:
~~~
a=`ls -al`;
echo 'Huch';
echo $a;
~~~
und in PHP
~~~
$a=`ls -al`;
echo 'Huch' . PHP_EOL;
echo $a. PHP_EOL ;
~~~