如何找到我正在执行的 tcsh shell 脚本的位置?
假设我将一个可执行的 tcsh 文件放在 /path/to/my_script.csh 中
,而我的当前目录在任何地方,例如我在 /path 中,
所以我输入 to/my_script.csh
我想在 my_script.csh 中有一行将返回“/path/to/my_script.csh” - 就像 ruby 的一样
__FILE__
Say I put an executable tcsh file in /path/to/my_script.csh
and my current directory is anywhere, for example I'm in /path
So I type to/my_script.csh
I want to have a line in my_script.csh that will return "/path/to/my_script.csh" - like ruby's
__FILE__
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 c shell 中,尝试这样:
In c shell, try like this:
如果你想确保相同的结果(完整路径和脚本名称),请尝试这样的操作:
然后你可以将其称为 foo.sh, ./foo.sh, some/lower/dir/foo.sh 并仍然得到相同的结果结果无论怎么称呼。
If you want to ensure the same result (full path and script name) try something like this:
Then you can call it as foo.sh, ./foo.sh, some/lower/dir/foo.sh and still get the same result no matter how it is called.
如果您想要绝对路径,那么这应该可以帮助您:
来源:http://tipsarea.com/2013/04/11/how-to-get-the-script-path-name-in-cshtcsh/
If you want an absolute path then this should help you out:
Source: http://tipsarea.com/2013/04/11/how-to-get-the-script-path-name-in-cshtcsh/
当从终端和另一个脚本获取数据时,以下方法都有效:(
假设要获取的文件名是“script.cshrc”)
第一个语句列出当前进程的打开文件描述符(包括源脚本)和 grep 查找其完整路径。
The following method works both when sourced from terminal and from another script:
(Assuming the filename to be sourced is "script.cshrc")
The first statement lists open file descriptors of the current process (which includes the sourced script) and grep for its full path.