在perl中实现bash命令cd

use*_*726 0 bash perl

我试图system("cd /home/user")在perl中实现一个bash命令,但是我得到一个错误说

Can't exec "cd": No such file or directory at temp.pl 
Run Code Online (Sandbox Code Playgroud)

有没有办法将当前工作目录更改为指定的工作目录,并且在perl脚本退出后仍然存在更改.

hob*_*bbs 5

否.进程无法更改其父进程的当前工作目录.Shell实现了像cd"builtins" 这样的命令,这意味着它们是shell本身的一个函数,而不是一个运行的独立进程.

您可以使用perl更改当前目录chdir($dir),并且该更改将由子进程继承 - 但不会传递给父进程.