DIR1:a / b / c / d DIR2:e / f / g / h
现在我在DIR1中执行Perl脚本,在DIR2中执行chdir(在DIR2中使用数据),在脚本执行后我想返回DIR1。是默认值,如果不是,那么应该使用什么命令。
提前致谢。
答案 0 :(得分:10)
您应该在第一次chdir
之前使用Cwd
....
use Cwd;
# get and save current working directory
my $dir = getcwd;
chdir("/some/path");
# do stuff
# now get back to original dir
chdir($dir);
答案 1 :(得分:2)
你的问题不是很清楚。我认为你可能会问两件不同的事情。如果我了解您的设置,请执行以下操作:
$ cd a/b/c/d
$ perl stuff.pl
stuff.pl
执行chdir("e/f/g/h")
。现在你想回到a/b/c/d
。正确的吗?
您希望在脚本完成后返回。由于脚本是在子进程中执行的,因此当您退出子进程时,您将返回到启动脚本之前的位置。没有什么特别需要做的。
您希望在脚本完成之前返回。在这种情况下,您可以记住当前目录:
#!/usr/bin/env perl
# remember the directory
my $curdir = `pwd`;
chdir("e/f/g/h");
# ...
# return back:
chdir($curdir);
# ...
答案 2 :(得分:0)
As per i get your question your purpose is first go to some directory like /a/b/c then execute some stuff as per requirement then next step is go to another directory like /e/f/g & execute some stuff.so i write below code as per your need.
$dir1 = "/home";
# This changes perl directory and moves you inside /home directory.
chdir( $dir1 ) or die "Couldn't go inside $dir directory, $!";
print "Your first location is $dir1\n";
#Execute your stuff in dir1
$dir2 = "/home/prasad";
# This changes perl directory and moves you inside /home directory.
chdir( $dir2 ) or die "Couldn't go inside $dir directory, $!";
print "Your second location is $dir2\n";
#Execute your stuff in dir2