View Full Version : funzioni Bash
sto provando a ridefinire il comando "ls" in modo che chiami un mio programma invece che il comado classico.
Per fare ciò ho messo una funzione chiamata "function ls()" in .bashrc, ma la bash continua comunque a richiamare il comando classico "ls"...qualcuno sa spiegarmi perchè?e come potrei aggirare il problema?
GRAZIE!
alias ls='quello che vuoi'
Grazie della risposta.
Il problema è che l'alias mi modifica il comando in modo permanente (almeno finchè non viene chiamato unalias), invece io vorrei che passando un certo parametro alla funzione ls() questa chiami il mio programma, se quel determinato parametro c'è, inveci chiami il classico comando "ls" se quel parametro non c'è...non so se mi sono spiegato bene.....
Fatti un programmino...ad esempio: miols che richama ls normale se non hai un prametro come quello che ti serve...
Originariamente inviato da cionci
Fatti un programmino...ad esempio: miols che richama ls normale se non hai un prametro come quello che ti serve...
ciao cionci...
allora, ho notato una cosa che ho sempre dato per scontato....
io uso KDE come Desktop manager, ed ho sempre pensato che quella che KDE chiama "Shell Konsole" fosse la bash normale...però ora vedo che, nel menù della Shell konsole posso aprire una nuova sessione come "Linux console", che effettivamente richiama la shell BASH....
ritornando al discorso della funzione, ho notato che da quest'ultima ("Linux console") il comando ls viene effettivamente sovrascritto dalla mia funzione ls() (contenuta in .bashrc), mentre nella sessione con "Shell Konsole" ciò non avviene....ed il fatto strano è che mi succedde solo se tento di sovrascrivere ls, mentre se tento di ridefinire, ad es, mkdir tutto và alla perfezione, cioè il comando viene ridefinito...
misteri?!!?
è una cosa veramente strana....
se provo a definire funzioni che hanno lo stesso nome dei comandi come "cp" "cd" "mkdir" e le metto in ./bashrc, i comandi mi vengono effettivamente sovrescritti e vengono eseguite le mie funzioni...ma se provo a ridefinire il comando ls, creando una funzione ls(), la cosa non funziona, e viene sempre eseguito il programma ls classico.....perchè?!?!?!?
non c'è nessuna anima pia che può darmi un barlume di speranza??
Originariamente inviato da akyra
non c'è nessuna anima pia che può darmi un barlume di speranza??
digita 'alias' e guarda che non ci sia già un alias per 'ls'
secondo me e' quello il problema, l'alias viene interpretato prima della tua funzione
werwerewrweòrjwrelq09ew09230329320984809we8!?!?!?!?!?;) :cool: :) :cry: :mc: :muro: :blah: :ubriachi: :doh: :doh: :doh:
che pirla...HAI RAGIONE....grazie.........
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.