Semplice script..
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Semplice script..
Salve! Sapete per caso dirmi come mai se inserisco un comando cd in uno script non me lo esegue? Grazie,
<BR> Marco.<br>
<BR> Marco.<br>
- useless
- Staff
- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
Semplice script..
metti il path completo: cd /xx/yy/zz...<br>
Semplice script..
Ciao! Io lo metto completo.. però è un CDverso un´ altra partizione, può essere li il problema? Marco<br>
- Loris
- Admin
- Messaggi: 7730
- Iscritto il: lun 31 mar 2003, 0:00
- Nome Cognome: Loris Vincenzi
- Località: Gradisca D'Isonzo
- Contatta:
Semplice script..
Facci un esempio di quello che devi fare è più semplice per noi aiutarti.<br>
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett
Semplice script..
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>
<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>
- Loris
- Admin
- Messaggi: 7730
- Iscritto il: lun 31 mar 2003, 0:00
- Nome Cognome: Loris Vincenzi
- Località: Gradisca D'Isonzo
- Contatta:
Semplice script..
Passaci lo script.<br>
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett
Semplice script..
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>
<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>
- useless
- Staff
- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
Semplice script..
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>
<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..
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>
<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>
- useless
- Staff
- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
Semplice script..
<!-- 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>
<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..
Ok!Ci sono riuscito..Molte grazie!Se ho altri prolemi posto..
<BR> Marco. <br>
<BR> Marco. <br>