Kezdőlap › Fórumok › Programozás › Bash script
- This topic has 437 hozzászólás, 56 résztvevő, and was last updated 13 years, 7 months telt el by
Goosfrabaa.
-
SzerzőBejegyzés
-
2008-08-04-08:17 #2053559
S mi van akkor ha ” ‘ ” jel van a fájl nevében és nem megoldható a csillagozós módszerrel?
Mert én eddig akárhogy próbáltam „” jelekkel levédeni sed-es átalakítás segítségével, sehogy nem jött össze.
Csak mivel ritkán fordul elő, ezért nem jöttem még ide a kérdéssel, de ha már itt tartunk. 🙂Pontos scriptet most nem tudom másolni(bár valamely korábbi hsz-be megvan szerintem), így csak elméleti síkon érdeklődőm.
alias-al szintén nem megoldható, mert nem terminálból futtatom, hanem gyorsbillentyűre van rádrótozva vagy fájl típushoz hozzárendelve.2008-08-04-09:18 #2053560Nem értem, mi a gond:
Code:$ ls
alma alma’korte korte szkript
$ cat szkript
for i in *; do file $i; done
echo ——-
while [ $# -gt 0 ]; do
file $1
shift
done$ ./szkript *
alma: directory
alma’korte: directory
korte: directory
szkript: ASCII text
——-
alma: directory
alma’korte: directory
korte: directory
szkript: ASCII text2008-08-04-09:45 #2053561Code:/$cat /home/norbi/scripts/player
#!/bin/sh
cd „$(dirname „$1″)”
ass=$(ls|grep ‘.ass$’)
file=$(echo $(basename „$1”)|sed ‘s/ /\ /g’|sed ‘s/[/\[/g’|sed ‘s/]/\]/g’)
if [ -n „$ass” ]; then
profile=ass
else
profile=srt
fi
ls|grep -A 100 „$file”|sed ‘s/ /\ /g’|xargs sudo nice -n -10 mplayer -fs -profile $profile/$sh /home/norbi/scripts/player /media/files/Downloads/avi/A Walk To Remember/A Walk’To Remember.avi
A Walk’To Remember.avi
MPlayer 1.0rc1-4.1.2-DFSG-free (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) XP 2500+ (Family: 6, Model: 10, Stepping: 0)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.Playing A Walk’To Remember.avi
A Walk’To Remember.srt
.
File not found: ‘A Walk’To Remember.avi
A Walk’To Remember.srt
‘
Failed to open A Walk’To Remember.avi
A Walk’To Remember.srt
.Exiting… (End of file)
/$Ha megpróbálom pl. így levédeni:
Code:sed „s/’/\’/g”akkor is ugyanezt az eredményt kapom, többféleképp is kísérleteztem vele anno, már nem emlékszem pontosan mikkel, de sehogy nem jött össze..
2008-08-04-11:44 #2053562uzsolt wrote:Ezt már írtam:uzsolt wrote:Erre nem kell szkript, egy alias is elég:Code:alias audio-cd=”wodim -audio”Ezután audio-cd *.wav kiírja neked az audio cédét.
milfer wrote:$COMMANDJobb az, ha eval $COMMAND módon hívod meg.
Uzsolt te rendkívűl makacs tudsz lenni. 😀
1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.Ezt tessék már elhinni. 😉
Irhatsz te itt példákat az ls-ről, file-ről, mkdir-ről. Azok jól működnek, de a wodim nem.
2008-08-04-14:15 #2053563milfer wrote:Uzsolt te rendkívűl makacs tudsz lenni. 😀
1. Nem véletlenűl írtam,
Ezt tessék már elhinni. 😉+1
2008-08-04-16:20 #2053564milfer wrote:wodim -audio /home/music/ez a zene.wavez 4 parancssori paraméter
milfer wrote:Ha parancssorból tabbal egészítem ki a nevet akkor jó :
wodim -audio /home/music/ez a zene.wavHa parancssorból ” ” jelek közé teszem akkor is jó :
wodim -audio „/home/music/ez a zene.wav”ezek meg 2… érzed a különbséget?
milfer wrote:Mi a különbség a parancssori wodim -audio „/home/music/ez a zene.wav” és a scripten belüli wodim -audio „/home/music/ez a zene.wav” között.Hogy még mindig 4 paraméter, 2 helyett. :)))
milfer wrote:Hogyan tudnám a scriptből úgy összeállítani a parancssort, hogy azt el is fogadja.Hozzátéve, hogy mivel a paramétereket space választja el egymástól… baromság a space-eket hagyományos karakterként kezelni:
Code:prm=”$1″shift
while [ „$#” != „0” ]; do
prm+=” $1″
shift
donetouch „${prm}”
Már csak az a kérdés, hogy adott esetben miből fogod tudni eldönteni, hogy az adott space paramétert választ el, vagy ugyanazon paraméter tagja?
Persze ez már legyen a te bajod… 🙂2008-08-04-17:57 #2053565milfer wrote:Uzsolt te rendkívűl makacs tudsz lenni. 😀
1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
Ja, erről nem volt szó 😉 Azt hittem, hogy csak audio cd-t akarsz így írni. Legalábbis a kódod (vagy inkább részleted) tele van AUDIO szavakkal 😉milfer wrote:2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.
Akkor mellékeld már ide az egész kódot! Igaz, hogy már megoldottad, de engem azért izgat, hogy miért nem megy, hogy hol nem veszi át/hol tűnik el a paraméter{t,}.
Meg persze az se világos, hogy miért van különbség az én mkdir-es meg egyéb példám és a wodim között (már ha egyáltalán van különbség).
A COMMAND-ot megpróbáltad eval $COMMAND módon hívni?kisbetu wrote:milfer wrote:Uzsolt te rendkívűl makacs tudsz lenni. 😀
1. Nem véletlenűl írtam,
Ezt tessék már elhinni. 😉
+1Hát naná! 😀
2008-08-04-20:05 #2053566uzsolt wrote:milfer wrote:Uzsolt te rendkívűl makacs tudsz lenni. 😀
1. Nem véletlenűl írtam, hogy azt az aliasos dolgot hagyjuk. Ez a script nem csak audio cédét tud írni, hanem olyat amilyen névvel indítod el (audio, iso, video, stb.).
Ja, erről nem volt szó 😉 Azt hittem, hogy csak audio cd-t akarsz így írni. Legalábbis a kódod (vagy inkább részleted) tele van AUDIO szavakkal 😉Szokd már meg, hogy nálam a legrövidebb bash szkript is több mint 10000 byte. 😀
uzsolt wrote:milfer wrote:2. Azt is írtam, hogy ha parancssorból indítom a wodimot így : wodim [paraméterek] -audio „/home/music/ez a zene.wav” akkor jól működik. Ha ugyanilyen paraméterekkel indítom a szkriptből akkor a ‘”/home/music/ez’ nevű fájl nem található üzenettel leáll a wodim.
Akkor mellékeld már ide az egész kódot! Igaz, hogy már megoldottad, de engem azért izgat, hogy miért nem megy, hogy hol nem veszi át/hol tűnik el a paraméter{t,}.
Meg persze az se világos, hogy miért van különbség az én mkdir-es meg egyéb példám és a wodim között (már ha egyáltalán van különbség).
A COMMAND-ot megpróbáltad eval $COMMAND módon hívni?Most volt alkalmam kipróbálni. Megint nyertél egy hangszórót. 😀
Tehát így nem jó : ${COMMAND}
így sem jó : exec ${COMMAND}
De így jó : eval ${COMMAND}2008-08-05-09:25 #2053567milfer wrote:De így jó : eval ${COMMAND}
Ez azt jelenti, hogy minden bolond karaktert kezel? Aposztróf, szóköz, stb?2008-08-05-11:25 #2053568uzsolt wrote:milfer wrote:De így jó : eval ${COMMAND}
Ez azt jelenti, hogy minden bolond karaktert kezel? Aposztróf, szóköz, stb?Igen.
Ez a parancs még változókkal.
COMMAND=”${CD_WRITER_PRG} dev=${WRITER_DEVICE} gracetime=10 fs=1024k -v -useinfo speed=${WRITING_SPEED} -dao -dummy -pad -overburn ${AUDIO_TRACKS}”Ez a teljes parancssor már behelyettesítve:
/usr/bin/wodim dev=/dev/sr0 gracetime=10 fs=1024k -v -useinfo speed=4 -dao -dummy -pad -overburn -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T01- Intro.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T02-Say What.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T03-Looking At Your Window.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T04-Little Sister.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T05-Mary Had A Little Lamb.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T06-Pride And Joy.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T07-Texas Flood.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T08-Superstition.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T09-Willie The Wimp.wav” -audio „/media/sdb2/xcdimages/Stevie Ray Vaughan – 1988-07-03 – T10-Couldn’t Stand The Weather.wav” -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz