親bashスクリプトは子bashスクリプトのCD履歴を覚えていますか?

親bashスクリプトは子bashスクリプトのCD履歴を覚えていますか?

例:

メインスクリプト.sh

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

000-script.sh

cd /mnt/otherthing
mkdir something
exit

ベストアンサー1

はい、実行プロセスは次のとおりです。いいえ親プロセスの作業ディレクトリを変更します。

例:

  • caller.sh

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

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

呼び出しがcaller.sh生成されます

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

印刷時に見られるように、親プロセスCaller 2にはまだ同じ作業ディレクトリがあります。

おすすめ記事