il problema sta nel'uso non corretto di $1.
prova con
function myfunc
{
echo $1 $2
}
cmd=myfunc param 1
$cmd
ciao
MaX
Il 24/05/12, Piviulpiv...@riminilug.it ha scritto:
Ciao a tutti avrei bisogno in uno script bash di inserire in una
variabile un comando, parametri inclusi. Il problema è
MaX scrisse in data 24/05/2012 09:12:
il problema sta nel'uso non corretto di $1.
non è proprio così: la funzione si aspetta che nel primo parametro ci
sia una parola che potrebbe contenere anche spazi. Vorrei gestire in una
variabile una chiamata tipo:
myfunc param 1
Non c'è quindi un
Il giorno gio, 24/05/2012 alle 09.19 +0200, Paolo Sala ha scritto:
MaX scrisse in data 24/05/2012 09:12:
il problema sta nel'uso non corretto di $1.
non è proprio così: la funzione si aspetta che nel primo parametro ci
sia una parola che potrebbe contenere anche spazi. Vorrei gestire in
Giuseppe Sacco scrisse in data 24/05/2012 09:23:
Puoi usare $*.
è incredibilmente davvero difficile spiegarsi... non sono alla ricerca
di un workaround. La funzione che vorrei chiamare da uno script accetta
parametri differenti in particolare se siete curiosi devo fare una
chiamata a dar; i
No, il problema sta proprio in $1, ed è incorretto perché bash usa
questa variabile per sapere quanti parametri deve passare allo script.
Tu la stai usando al contrario.
prova questo script dal nome prova.sh:
-
#!/bin/bash
echo $1
---
e lancialo con
# ./prova.sh par1 par2
la
Il giorno gio, 24/05/2012 alle 09.51 +0200, Piviul ha scritto:
Giuseppe Sacco scrisse in data 24/05/2012 09:23:
Puoi usare $*.
è incredibilmente davvero difficile spiegarsi... non sono alla ricerca
di un workaround. La funzione che vorrei chiamare da uno script accetta
[...]
Per quanto io
MaX scrisse in data 24/05/2012 09:59:
No, il problema sta proprio in $1, ed è incorretto perché bash usa
questa variabile per sapere quanti parametri deve passare allo script.
Tu la stai usando al contrario.
prova questo script dal nome prova.sh:
-
#!/bin/bash
echo $1
Il 24/05/2012 09:51, Piviul ha scritto:
è possibile che non ci sia il modo per passare correttamente un
parametro che può contenere spazi a una funzione?
Non son sicurissimo di aver capito ma:
$ function a(){ echo $1;}
$ a primo secondo
primo
$ a primo\ secondo
primo secondo
$ a 'primo
Giuseppe Sacco scrisse in data 24/05/2012 10:24:
In questo caso, nella seconda e terza invocazione, tutto funziona come
vorresti. Giusto?
ESATTO! Grande Giuseppe, mille grazie! ...non avevo pensato ad eval!!!
Grazie ancora
Piviul
--
Per REVOCARE l'iscrizione alla lista, inviare un email
buono a sapersi. Grazie anche da parte mia :D
Il 24/05/12, Piviulpiv...@riminilug.it ha scritto:
Giuseppe Sacco scrisse in data 24/05/2012 10:24:
In questo caso, nella seconda e terza invocazione, tutto funziona come
vorresti. Giusto?
ESATTO! Grande Giuseppe, mille grazie! ...non avevo
Ciao a tutti avrei bisogno in uno script bash di inserire in una
variabile un comando, parametri inclusi. Il problema è che i parametri
possono contenere spazi quindi qualcosa come
function myfunc
{
echo $1
}
cmd=myfunc \param 1\
$cmd
Non ha il comportamento desiderato (in $1 di myfunc ho
Ciao vorrei rinominare una serie di files che iniziano con - n dove n è
un numero tra 1 e 9 sostituendo quello spazio fra - e n (n è appunto il
numero tra 1 e 9) con 0. Per farvi un esempio i files sono del tipo
- 1-altricaratteri
- 2-altricaratteriancora diversi
...
Vorrei rinominarli con 01,
Ciao vorrei rinominare una serie di files che iniziano con - n dove n è
un numero tra 1 e 9 sostituendo quello spazio fra - e n (n è appunto il
numero tra 1 e 9) con 0. Per farvi un esempio i files sono del tipo
- 1-altricaratteri
- 2-altricaratteriancora diversi
...
Vorrei rinominarli con 01,
On Sat, Aug 19, 2006 at 09:08:31AM +0200, Paolo Sala wrote:
Ciao vorrei rinominare una serie di files che iniziano con - n dove n è
un numero tra 1 e 9 sostituendo quello spazio fra - e n (n è appunto il
numero tra 1 e 9) con 0.
Io per questo genere di cose uso rename, che ti permette di fare
Anzitutto mille grazie; scusate ma non ho una grande dimestichezza con
le RE; ho provato sia
$ rename 's/^- /-0/' *
che
$rename 's|-\ \([0-9]\)|-0\1|' *
ma mi risponde:
Unknown option: 1
Unknown option: 0
Unknown option:
Unknown option: 1
Unknown option: 1
Unknown option:
Unknown
Alle 15:21, sabato 19 agosto 2006, Paolo Sala ha scritto:
Anzitutto mille grazie; scusate ma non ho una grande dimestichezza con
le RE; ho provato sia
$ rename 's/^- /-0/' *
che
$rename 's|-\ \([0-9]\)|-0\1|' *
ma mi risponde:
Unknown option: 1
[...]
unknown option:
Usage: rename
On Sat, Aug 19, 2006 at 03:21:14PM +0200, Paolo Sala wrote:
ma mi risponde:
Unknown option: 1
[...]
Scusa non avevo pensato al trattino iniziale nell'esempio. Prova con
$ rename 's/^- /-0/' -- *
e vedi se migliora.
--
Massimiliano Masserelli
Massimiliano Masserelli ha scritto:
On Sat, Aug 19, 2006 at 03:21:14PM +0200, Paolo Sala wrote:
ma mi risponde:
Unknown option: 1
[...]
Scusa non avevo pensato al trattino iniziale nell'esempio. Prova con
$ rename 's/^- /-0/' -- *
e vedi se migliora.
Funziona!!!
On Sat, Aug 19, 2006 at 05:06:13PM +0200, Paolo Sala wrote:
Scusa non avevo pensato al trattino iniziale nell'esempio. Prova con
$ rename 's/^- /-0/' -- *
e vedi se migliora.
Funziona!!! ...puoi coretesemente spiegarmi cosa c'entrano i -- vicino a *?
Se i file cominciano con il carattere
Massimiliano Masserelli ha scritto:
On Sat, Aug 19, 2006 at 05:06:13PM +0200, Paolo Sala wrote:
Scusa non avevo pensato al trattino iniziale nell'esempio. Prova con
$ rename 's/^- /-0/' -- *
e vedi se migliora.
Funziona!!! ...puoi coretesemente spiegarmi cosa c'entrano i --
Ciao, in una variabile ho un nome di file e vorrei togliere l'estensione
soltanto nel caso ce l'abbia. Il problema che non conosco l'estensione a
priori.
Ho pensato che un modo potesse essere con un case sulle estensioni
conosciute e poi applicare basename su quell'estensione ma è un po'
versione estesa ma semplice da capire:
for i in *; do
mv $i `echo $i | cut -d '.' -f1`
echo Rinomino $i in `echo $i | cut -d '.' -f1`
done
Paolo Sala ha scritto:
Ciao, in una variabile ho un nome di file e vorrei togliere
l'estensione soltanto nel caso ce l'abbia. Il problema che non
Mille e mille grazie.
Piviul
max scrisse in data 29/11/2005 13:34:
versione estesa ma semplice da capire:
for i in *; do
mv $i `echo $i | cut -d '.' -f1`
echo Rinomino $i in `echo $i | cut -d '.' -f1`
done
Paolo Sala ha scritto:
Ciao, in una variabile ho un nome di file e vorrei
On Tue, 2005-11-29 at 15:04 +0100, Paolo Sala wrote:
Mille e mille grazie.
Piviul
max scrisse in data 29/11/2005 13:34:
versione estesa ma semplice da capire:
for i in *; do
mv $i `echo $i | cut -d '.' -f1`
echo Rinomino $i in `echo $i | cut -d '.' -f1`
done
A me
Stefano Simonucci scrisse in data 29/11/2005 15:44:
On Tue, 2005-11-29 at 15:04 +0100, Paolo Sala wrote:
A me funziona solo togliendo le virgolette subito dopo f1. Inoltre
se prima dell' estensione ci sono altri punti nel nome?.
Si potrebbe provare la seguente modifica? ..
for i in
Paolo Sala ha scritto:
Ciao, in una variabile ho un nome di file e vorrei togliere l'estensione
soltanto nel caso ce l'abbia. Il problema che non conosco l'estensione a
priori.
un'altra soluzione
for i in *\.*; do mv $(echo $i $(echo $i | sed s/\.[^\.]*$//)); done
Ciao
Davide
--
Dizionari:
Grazie mille Davide, ci ho provato per due ore ieri a tirare fuori la
regular expression che mi hai mandato. Ovviamente ho fallito. Non
riuscirò mai a capirle quelle maledette re.
Grazie mille, mi studierò l'esempio che mi hai mandato.
Un saluto
Piviul
Davide Prina scrisse in data
27 matches
Mail list logo