PDA

View Full Version : [bash]


ghiltanas
06-04-2014, 14:04
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 :mad:

#!/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 :fagiano: :
marco@marco-GA-MA790XT-UD4P ~/Scrivania $ sh mycd.sh
marco
directory richiesta: marco
/home/marco/Scrivania/marco
marco@marco-GA-MA790XT-UD4P ~/Scrivania $

why?

GByTe87
06-04-2014, 15:28
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

ghiltanas
06-04-2014, 15:34
risolto:
source mycd.sh invece di sh mycd.sh

pomeriggi a rischiare la pazzia e poi la soluzione è na strunzata :cry:

@GByTe87 già, ma da nessuna parte trovavo la soluzione :D

Daniels118
08-04-2014, 07:50
Come ulteriore suggerimento: puoi utilizzare anche il comando "." (punto) al posto di source.