呼び出し元のシェルの現在のディレクトリを変更しながら、子プロセスでシェル スクリプトを実行するにはどうすればよいでしょうか。
答え1
あなたはできません。
親シェルの環境は、子プロセスが起動されたときに子プロセスにコピーされ、その時点から、子プロセスと子プロセスは完全に分離されます。子プロセスは親プロセスの環境を直接変更することはできません。
子が親に影響を与える唯一の方法は、親にメッセージを送り、親がそれに従って行動することです。
eval "$( bash -c 'echo "cd /"' )" # message through command string to stdout
または
# message through USR1 signal triggers predefined action
trap 'cd /' USR1
bash -c 'kill -s USR1 "$PPID"'