|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 27844
|
[bash]
devo fare un pò di esercizi per impratichirmi con la shell e lo scripting, però sono piantato su un punto.
L'esercizio è un pò più complesso ma non andando la base è inutile andare avanti: in questa prova vorrei che dandogli una sottodirectory, se presente, mi ci acceda, pari pari quindi al comando 'cd'. Però non lo fa ![]() #!/bin/bash read path echo "directory richiesta: $path" sleep 2 if [ -d $path ]; then cd "$path" pwd fi il pwd mi stampa correttamente, però poi resta nella dir attuale ![]() marco@marco-GA-MA790XT-UD4P ~/Scrivania $ sh mycd.sh marco directory richiesta: marco /home/marco/Scrivania/marco marco@marco-GA-MA790XT-UD4P ~/Scrivania $ why?
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Gli script vengono eseguiti in una subshell; quindi il cambio di directory avviene, ma solo nell'ambito dello script
http://stackoverflow.com/a/255415/3149766
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 27844
|
risolto:
source mycd.sh invece di sh mycd.sh pomeriggi a rischiare la pazzia e poi la soluzione è na strunzata ![]() @GByTe87 già, ma da nessuna parte trovavo la soluzione ![]()
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Come ulteriore suggerimento: puoi utilizzare anche il comando "." (punto) al posto di source.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:05.