我想编写一个perl脚本,将其工作目录更改为其他位置,执行某些操作,然后在我从shell调用该目录后将该目录留在该目录中。 chdir
只做第一部分。如何更改呼叫者的工作目录?Perl更改调用者的工作目录
回答
你想做什么是不可能的。最接近的做法是编写一些bash,然后在调用shell中发送它,而不是运行它。软件不能影响调用它的shell。
“不可能”不是**超严格**是真实的。我做了这种顽皮。但是,凡是豁免正常规章制度的人都不适用,肯定不会适用,这里就不会问了。这绝对是最好的,如果他们*认为*不可能:考虑他们是否尝试过,错过了。 :) – tchrist 2011-05-10 20:31:23
你可以做followng模拟效果:
- 打电话给你的脚本EXEC
- 在你的脚本,而不是退出,exec的一个新的外壳。
将您的perl脚本包装在shell脚本中,在执行perl脚本之前从bash脚本中更改目录并获取脚本。
所以不是一个Perl脚本,如:
#!/usr/bin/perl
# my_program.pl ...
chdir "/my/directory";
...
使用,比方说,一个bash脚本,如:
#!/usr/bin/bash
cd /my/directory
perl my_program.pl "[email protected]"
和来源,当你把它叫做脚本,即
$ source my_bash.sh
或
$ . my_bash.sh
(现在你可以使用的定界符,并把它所有到一个脚本:
#!/usr/bin/bash
cd /my/directory
perl <<EOF
... include your perl script here ...
EOF
但我不认为你可以使用@ARGV
变量)
这是比“不要那样做,这是错误的”更有用的答案。谢谢。 – 2014-12-04 19:49:16
这是可能。
但是,你必须打开在读/写模式/dev/mem
设备之一,在存储器中找到合适的位置存储父进程的[dev,ino]
对为其cwd
,并用新捅它。
即使你管理,我怀疑你可以在第二天早上看到自己在镜子里。我确定知道我永远不会。 :)尽管如此,我的同事们脸上的神态完全是值得的。我使用这种方法将shell的提示从一个命令更改为下一个命令。这只是珍贵的。直到我告诉他们我是如何做到的,他们根本弄不明白。
这也不被推荐。 :)
- 1. 在Python中更改调用者的当前工作目录
- 2. 更改UFT工作目录
- 3. Git更改工作目录
- 4. 更改工作目录
- 5. 更改工作目录
- 6. 使用perl的TokeParser更改目录
- 7. 使用.htaccess更改工作目录
- 8. SWI Prolog更改工作目录/获取当前工作目录?
- 9. 如何更改目录使用Perl
- 10. 更改Xcode中的工作目录
- 11. 更改msbuild.exe的工作目录
- 12. 从bash调用python,如何更改python工作目录?
- 13. 如何在Emacs中更改构建/调试的工作目录?
- 14. 在C中更改工作目录?
- 15. 无法更改当前工作目录
- 16. 如何更改当前工作目录
- 17. 更改目录在Python,不工作
- 18. knitr with bash:更改工作目录
- 19. Python 3.4 - win32com更改工作目录
- 20. Java更改文件工作目录
- 21. 更改工作目录swi-Prolog
- 22. grunt + mochaTest:更改工作目录?
- 23. 更改默认/工作目录Xcode 3.2.6
- 24. 将工作目录更改为当前脚本的目录
- 25. Perl模块Telnet:Cd问题(更改目录)
- 26. 如何在perl中更改目录?
- 27. 从Windows cmd.exe更改Perl目录
- 28. 如何在Visual Studio中调试时更改工作目录?
- 29. 在java中更改目录所有者
- 30. 当rprofile.site更改工作目录时,RStudio不加载工作区
幸运的是,这是不可能的。 – Ingo 2011-05-10 19:30:37