|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
problema script BASH (O-:)
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 Codice:
#!/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!
__________________
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ovvio. Lo script cambia la directory nel suo contesto di esecuzione, che è diverso dal contesto di chi lo invoca.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
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?
__________________
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
alias cd=". cd.sh"
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
cioè creare uno script nascosto ".cd.sh" nella home directory, al posto di aggiungere le info al file ".bash_profile"?
__________________
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
No, fai precedere cd.sh da "punto<spazio>", che in bash significa "esegui nel contesto corrente di esecuzione".
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
ah...capito!
comunque, perchè dici che sia meglio fare come tu proponi, rispetto ad aggiungere la funzione su ".bash_profile"? (solo per curiosità)
__________________
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Sei tu che hai posto il problema di come cambiare "cd" tramite "alias"...
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
hahah
![]() la risposta era nella domanda!! grazie dell'aiuto, sei un moderatore sempre preciso e attento!
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:01.