Azt szeretném, ha egy php szkriptem "önmagában" indítható lenne, és a kimenet helyét is elegánsan (valahogy ott a shebang részen) megadhatnám. Tehát nem akarok fwrite-ot használni, hanem valamilyen stdout-átirányítást.
A szkript eleje ilyen:
#!/usr/bin/php
<?php
...
A fájl futtatható, tehát egy ./szkriptem.php paranccsal elindul. Azt szeretném, ha a kimenetet (pl. az első sorban valahogy megadva) kedvemre irányíthatnám. Sajnos, ha a fájl elejére írok egy > /tmp/ide-t, akkor ezt kapom: "Could not open input file: > /tmp/ide"
Egy olyan kerülőút persze van, hogy írok egy másik szkriptet, amiben meg tudom hívni: ./szkriptem.php > idemenj, de ezt nem szeretném, hanem egy önmagában "jól dokumentált", beszédes fájlra vágyom. Nem szeretném a php -r '...'>ide megoldást sem használni.
- 8074 megtekintés
Hozzászólások
fclose(STDOUT);
$STDOUT = fopen('out.log', 'w');
- A hozzászóláshoz be kell jelentkezni
Zseniális. Köszönet érte!
- A hozzászóláshoz be kell jelentkezni
szivesen
- A hozzászóláshoz be kell jelentkezni
Sziasztok,
Tudnátok segíteni, hogy hogyan tudnám átirányítani az ls kimenetét a pdftk programnak?
Ezeket próbáltam eddig:
pdftk <1 ls *.pdf output out.pdf
bash: 1: No such file or directory
pdftk <&1 ls *.pdf output out.pdf
Error: Failed to open PDF file:
ls
Errors encountered. No output created.
Done. Input errors, so no output created.
pdftk
bash: ls: No such file or directory
pdftk <$(ls *.pdf) output out.pdf
bash: $(ls *.pdf): ambiguous redirect
-- Zoli
- A hozzászóláshoz be kell jelentkezni
Mi bajod a | -vel?
- A hozzászóláshoz be kell jelentkezni
Az önmagában nem nyerő, mivel az ls outputja nem pdf formátumú. :)
Neki azt hiszem, az xargs (is) kellene.
- A hozzászóláshoz be kell jelentkezni
Szerintem is az xarg kellene, már olvastam róla, hogy pont erre jó, ami nekem kellene.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
A xargs persze jó, és tanácsos vele ismerkedni, de mi a gond a minimalizmussal, ha már mindenképpen kell az ls ott, ahová igazából nem kell?
pdftk `ls *.pdf` output out.pdf
- A hozzászóláshoz be kell jelentkezni
Érdekes megoldás a *.pdf helyett. Tudom, Te is ezt írtad... :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Én itt megint elvesztem. Mi a feladat?
pdftk *.pdf
Vagy mi?
- A hozzászóláshoz be kell jelentkezni
Az a gyanúm, hogy igen.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Köszönöm, ez lett a megoldás:-)
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
Elmagyarázod, hogy ez
pdftk `ls *.pdf` output out.pdf
miben nyúlt többet/mást, mint ez?
pdftk *.pdf output out.pdf
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Pl. az ls helyettesíthető más paranccsal is és lehet, hogy ez csak példa volt, valójában nem az ls kimenetét akarja oda beilleszteni?
- A hozzászóláshoz be kell jelentkezni
Ezt oldottam meg vele:
pdftk szghalok_tartalomjegyzek.pdf `ls *fejezet.pdf` szghalok_targymutato.pdf output tanenbaum_szamitogep.halozatok.pdf
Amint látod a sorrendiség miatt volt rá szükségem.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf"
- A hozzászóláshoz be kell jelentkezni
És ez miben tér el a
pdftk szghalok_tartalomjegyzek.pdf *fejezet.pdf szghalok_targymutato.pdf output tanenbaum_szamitogep.halozatok.pdf
formától?
- A hozzászóláshoz be kell jelentkezni
Azt nem sikerült megértened, hogy amikor az ls után használsz shell globot, akkor az ls kimenete éppen az lesz, amit a glob kifejtése után a shell átad neki. Te ezt a kimenetet helyettesítetted a backtick által a paraméterek helyére, de ez éppen ugyanaz, mintha a parancsod paraméterei helyére közvetlenül a shell fejtené ki az odaírt globot. Mi a fenének hívtad meg az ls-t? Amúgy, hogy bosszantsalak, hívhattad volna akár az echo-t is ugyanígy, az is éppen ennyire fölösleges volna.
pdftk szghalok_tartalomjegyzek.pdf `echo *fejezet.pdf` szghalok_targymutato.pdf output tanenbaum_szamitogep.halozatok.pdf
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Hogymivan?
- A hozzászóláshoz be kell jelentkezni