Um script pai bash lembra o histórico do cd de um script filho bash?

2

Exemplo:

mainscript.sh

cd /mnt/something
./buildscripts/000-script.sh

000-script.sh

cd /mnt/otherthing
mkdir something
exit
    
por EyesIsMine 21.12.2012 / 07:00

2 respostas

3

Sim, o processo executado irá não alterar o diretório de trabalho do processo pai.

Exemplo:

  • caller.sh

    #!/bin/bash
    echo -n "Caller 1 " ; pwd
    ./callee.sh
    echo -n "Caller 2 " ; pwd
    
  • callee.sh

    #!/bin/bash
    echo -n "Callee 1 " ; pwd
    cd /tmp
    echo -n "Callee 2 " ; pwd
    exit
    

Chamar caller.sh produzirá

Caller 1 /Users/corti/tmp
Callee 1 /Users/corti/tmp
Callee 2 /tmp
Caller 2 /Users/corti/tmp

Como você vê ao imprimir Caller 2 , o processo pai ainda tem o mesmo diretório de trabalho

    
por 21.12.2012 / 07:05
0

O "filho" não está se lembrando de nada. Este é apenas um conceito básico de que os processos são iniciados a partir de seu diretório de trabalho atual (cwd). Se você olhar para / proc / * em um sistema Linux, poderá ver essa entrada para cada processo.

    
por 21.12.2012 / 22:26