PDA

View Full Version : problema script BASH (O-:)


akyra
07-06-2004, 15:59
ho un problema che non riesco a capire come risolvere....dovrebbe essere semplice, ma la mia testa per ora non riesce a venirne a capo:

sto provando a ridefinire il comando "cd" della shell bash, in modo che esegua uno definito da me...
il comando è memorizzato in uno script "cd.sh", ed è il seguente


#!/bin/bash

builtin cd "$1"




come si può vedere il comando non fa nulla di particolare se non richiamare il comando builtin "cd"....ma se creao un alias di cd in modo che invochi il mio "cd.sh" invece del builtin cd:

alias cd=cd.sh

provando a fare un "cd" all'interno di una directory non succede nulla, cioè il comando non fa cambiare directory.....boh!
però se provo a spostarmi su una directory che non esiste, mi viene segnalato l'errore, quindi il comando dovrebbe funzionare?!
ogni suggerimento è gradito, grazie a tutti per l'eventuale aiuto!

ilsensine
07-06-2004, 16:10
Ovvio. Lo script cambia la directory nel suo contesto di esecuzione, che è diverso dal contesto di chi lo invoca.

akyra
07-06-2004, 16:28
mmm....quindi sarebbe meglio creare mettere la funzione creata nel file

~/.bash_profile

in modo che il contesto di esecuzione sia l'intero sistema di directory dell'utente...giusto?

ilsensine
07-06-2004, 16:30
alias cd=". cd.sh"

akyra
07-06-2004, 16:33
cioè creare uno script nascosto ".cd.sh" nella home directory, al posto di aggiungere le info al file ".bash_profile"?

ilsensine
07-06-2004, 16:36
No, fai precedere cd.sh da "punto<spazio>", che in bash significa "esegui nel contesto corrente di esecuzione".

akyra
07-06-2004, 16:41
ah...capito!
comunque, perchè dici che sia meglio fare come tu proponi, rispetto ad aggiungere la funzione su ".bash_profile"?
(solo per curiosità)

ilsensine
07-06-2004, 16:46
Sei tu che hai posto il problema di come cambiare "cd" tramite "alias"... ;)

akyra
07-06-2004, 16:53
hahah :D
la risposta era nella domanda!!
grazie dell'aiuto, sei un moderatore sempre preciso e attento!