Semplice script..

Postate qui per tutte le discussioni legate a Linux in generale.

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.
Rispondi
wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio 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>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Semplice script..

Messaggio da useless »

metti il path completo: cd /xx/yy/zz...<br>

wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio da wacco »

Ciao! Io lo metto completo.. però è un CDverso un´ altra partizione, può essere li il problema? Marco<br>

Avatar utente
Loris
Admin
Admin
Messaggi: 7730
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Semplice script..

Messaggio da Loris »

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

wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio 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>

Avatar utente
Loris
Admin
Admin
Messaggi: 7730
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Semplice script..

Messaggio da Loris »

Passaci lo script.<br>
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio 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>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Semplice script..

Messaggio 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>

wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio 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>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Semplice script..

Messaggio 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>

wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Semplice script..

Messaggio da wacco »

Ok!Ci sono riuscito..Molte grazie!Se ho altri prolemi posto..
<BR> Marco. <br>

Rispondi