Pagina 1 di 1

Semplice script..

Inviato: gio 11 dic 2003, 13:42
da wacco
Salve! Sapete per caso dirmi come mai se inserisco un comando cd in uno script non me lo esegue? Grazie,
<BR> Marco.<br>

Semplice script..

Inviato: gio 11 dic 2003, 18:00
da useless
metti il path completo: cd /xx/yy/zz...<br>

Semplice script..

Inviato: gio 11 dic 2003, 18:37
da wacco
Ciao! Io lo metto completo.. però è un CDverso un´ altra partizione, può essere li il problema? Marco<br>

Semplice script..

Inviato: gio 11 dic 2003, 19:00
da Loris
Facci un esempio di quello che devi fare è più semplice per noi aiutarti.<br>

Semplice script..

Inviato: gio 11 dic 2003, 19:26
da wacco
Premettto che sono alle prime armi :-)
<BR>Vorrei provare a fare un piccolo script che chieda artista e titolo dell´ album non necessariamente completi, quindi sfrutando un ls | grep "parte del titolo" per esempio e vada ad eseguire i brani con oggplay, che è uno sript di una riga che uso per eseguire uno dopo l´altro i brani di una directory.
<BR>Capisco che non sia il massimo dell´ utilità, ma mi sembrava una cosina buona per cominciare.. Grazie! Marco.<br>

Semplice script..

Inviato: ven 12 dic 2003, 13:40
da Loris
Passaci lo script.<br>

Semplice script..

Inviato: ven 12 dic 2003, 19:10
da wacco
Questa è la mia idea:
<BR>
<BR>#!/bin/bash
<BR>echo "Artista: "
<BR>read artista
<BR>echo "Album: "
<BR>read album
<BR>ls /bazar/Musica/$artista | grep $album | ?? #Qui vorrei passare l´output, cioè il #titolo corretto ad una variabile, chiamiamola corretto, indi
<BR>oggplay /bazar/Musica/$artista/$corretto
<BR>
<BR>La procedura di ricerca poi si potrebbe fare anche per l´ artista, sarebe solo una copia di quella per l´ album. Il problema del cd riguardava i test che facevo per associare l´ outoput di grep ad una variabile. Cioe:
<BR>
<BR>#!/bin/bash
<BR>echo "Artista: "
<BR>read artista
<BR>cd /bazar/Musica/$artista
<BR>
<BR>non funziona anche se il titolo dell´ artista è giusto. A riga di comando però funziona..
<BR> Marco.
<BR>
<BR><BR><BR>[ Questo Messaggio è stato Modificato da: wacco il 12-12-2003 19:11 ]<br>

Semplice script..

Inviato: ven 12 dic 2003, 22:26
da useless
guarda questo mio script scritto apposta:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>#!/bin/sh
<BR>
<BR>pwd
<BR>cd /usr
<BR>pwd
<BR>ls
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>il suo output è:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>sukko@unholycathedral sukko $ chmod a+x test
<BR>sukko@unholycathedral sukko $ ./test
<BR>/home/sukko
<BR>/usr
<BR>adm doc i486-slackware-linux java local share tmp
<BR>bin etc include lib man spool X11
<BR>dict games info libexec sbin src X11R6
<BR>sukko@unholycathedral sukko $
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>ergo tutto funziona come dovrebbe. se quel che non ti spieghi è perché la directory mostrata dal prompt è sempre la stessa, è perché lo script viene eseguito un un´altra shell (come indica la prima riga!), caricata apposta e terminata subito dopo. se vuoi che il programma venga eseguito dalla shell corrente, usa <!-- BBCode Start --><I>source</I><!-- BBCode End -->:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>sukko@unholycathedral sukko $ source ./test
<BR>/home/sukko
<BR>/usr
<BR>adm@ doc/ i486-slackware-linux/ java/ local/ share/ tmp@
<BR>bin/ etc/ include/ lib/ man/ spool@ X11@
<BR>dict/ games/ info/ libexec/ sbin/ src/ X11R6/
<BR>sukko@unholycathedral usr $
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>come vedi, stavolta è cambiata anche la dir corrente!
<BR>
<BR>quanto a come "catturare" l´output di ls:
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>for f in `ls *`
<BR>do
<BR> echo $f
<BR>done
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>stamperà il nome di ogni file presente nella directory corrente. da questo dovresti facilmente ricavare quel che serve a te. se non ci riesci... posta ;-).<br>

Semplice script..

Inviato: sab 13 dic 2003, 18:43
da wacco
Ciao! Grazie per l´esauriente post! Il mio problema però rimane "catturare" l´output di grep. Forse mi ero spiegato male..
<BR>Ti faccio vedere lo script:
<BR>#!/bin/bash
<BR>echo "Artista: "
<BR>read artista
<BR>echo "Album: "
<BR>read album
<BR>ls /bazar/Musica/$artista/ | grep $album | read corretto
<BR>cd /bazar/Musica/$artista/$corretto
<BR>
<BR>Adesso con source ./test entra nella directory /bazar/Musica/$artista ma si ferma li e non entra nella dir $corretto. Dove sbaglio?
<BR>Grazie mille ancora,
<BR> Marco.<br>

Semplice script..

Inviato: sab 13 dic 2003, 21:24
da useless
<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>ls /bazar/Musica/$artista/ | grep $album | read corretto
<BR>cd /bazar/Musica/$artista/$corretto
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>devi usare le fantastiche "virgolette al contrario" (altgr+?):
<BR>
<BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
<BR>corretto=`ls /bazar/Musica/$artista/ | grep $album`
<BR>cd /bazar/Musica/$artista/$corretto
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --><br>

Semplice script..

Inviato: dom 14 dic 2003, 13:04
da wacco
Ok!Ci sono riuscito..Molte grazie!Se ho altri prolemi posto..
<BR> Marco. <br>