- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的许多同事在他们的 BEGIN block 中使用以下命令。
$scriptDir = dirname($0);
chdir($scriptDir);
$scriptDir = getcwd();
$scriptDir = getcwd();
是多余的。因为我们已经有了来自
$scriptDir = dirname($0);
的 scriptdir .我在这里错过了什么吗?
最佳答案
dirname($0)
不返回完整路径,如 Chankey Pathak和 Matthias
证明。
我想补充一点,还有其他方法。例如,您可以使用 FindBin (也是核心)
use FindBin qw($RealBin);
BEGIN: {
my ($scriptDir) = $RealBin;
chdir $scriptDir or die "Can't change to $scriptDir: $!";
};
$RealBin
给出的内容与您显示的内容相同,只是它是已解析链接的完整路径。
use lib "$RealBin/../lib";
dirname
来自
File::Basename 的描述(原重点)
This function is provided for compatibility with the Unix shell command
dirname(1)
and has inherited some of its quirks. In spite of its name it does NOT always return the directory name as you might expect. To be safe, if you want the directory name of a path usefileparse()
.
use Cwd qw(abs_path);
BEGIN: {
my ($scriptDir) = abs_path(__FILE__) =~ m|(.*)/|;
chdir $scriptDir
or die "Can't change to $scriptDir: $!";
};
abs_path
从
__FILE__
开始使用其本身可能无法提供完整的路径。正则表达式贪婪地挖出所有内容,直到最后
/
,即脚本所在目录的完整路径。
关于perl - 切换到一个目录,然后 getcwd(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296378/
是红色的,这似乎是什么原因造成的?什么是打开的?
我是 Perl 语言的新手,在我使用的代码中有这一行: $BASEDIR = &getcwd(); 我想知道为什么在调用 getcwd 之前有一个 &,我找不到任何关于它的引用。有人可以帮我解决这个问
当我试图将我的iOS应用程序存档时,Ffltter一直都会出错。我用另一台电脑上传了这款应用的前一个版本。。。我尝试了Ffltter Clear,删除了podfile.lock文件,我还使用了Fflt
我正在执行 Perl 脚本以将另一个变量附加到当前工作目录的末尾,但我在使用该模块时遇到问题。 如果我从 D:\ 运行 getcwd,返回的值为 D:/ (with forward slash) 如
char cwd[256]; if (getcwd(cwd, sizeof(cwd)) == NULL) { return -1; } 首先想到的是,当 cwd 不够大时,getcwd() 可
如果是读取当前目录,函数getcwd的第二个参数应该填什么? 最佳答案 要填充的缓冲区的大小: char result[PATH_MAX]; char *r = getcwd(result, PATH
我将我的 Sinatra 应用程序上传到 Beanstalk。当我访问我的站点时,我的日志被返回 No such file or directory - getcwd 该应用程序之前运行正常。我认为这
我的许多同事在他们的 BEGIN block 中使用以下命令。 $scriptDir = dirname($0); chdir($scriptDir); $scriptDir = getcwd();
typedef struct { char Path[100]; } DirectoryInformation; void Getskelutofdirectorie(char * dir, in
我在 Debian 上使用 python3.7。我有一个网络驱动器,通常将其安装到 /media/N_drive与 dir_mode=0777和file_mode=0777 。我通常在此网络驱动器中读
我在我的 ubuntu 16.04 机器上运行一个带有 tensorflow 的 python 2.7 程序。在某些时候(发生这种情况时它会随机变化),程序崩溃是因为 os.getcwdu()失败。然
我正在运行“php:7.4-fpm”容器来为 laravel 应用程序提供服务。当我尝试通过 ssh 进入容器时,出现以下错误: shell-init: error retrieving curren
我刚刚开始在 Linux 上学习/使用 Assembly x64,并尝试调用 getcwd()与 call .尝试调用 getcwd() 后函数,我也试图输出不起作用的结果,我不明白为什么。任何指针/
我想打印出 libc::getcwd 的结果.我的问题是创建 getcwd需要 i8 ( c_char ) 缓冲区,而 String::from_utf8需要 u8缓冲。我开始于: static BU
我想从 php 中的绝对路径加载一个 javascript 文件,但我一直收到名为“无法加载本地资源”的错误。 我有一个这样的绝对路径字符串 /js/jquery.js"> 结果如下: 我该如何解决和
我正在尝试制作一个简单的程序,将您的工作目录写入一个文件,但我终究无法弄清楚我做错了什么。无论我做什么,我的缓冲区在调用 getcwd() 后都会存储空值。我怀疑这可能与权限有关,但据称,linux
刚开始学习linux和C,请不要苛求我。 我正在尝试查找当前工作目录并打开此目录中的文件以查找特定单词。如果我只找到 cwd,它会给出正确的 cwd,但是当我添加 while 循环时,cwd 为 nu
一个进程就可以完成 chdir("/to/some/where"); 当来自另一个 shell 时 mv /to/some/where /now/different/path/ 第一个过程 print
我编写了自己的 find() 函数。当我这样做时: ./myown $HOME/Documents test.txt 我得到: /Users/CJ/Documents/test/test.txt /U
我想记忆一下 C 编程。 我为自己找到的一项任务是使用指针在函数之间传递字符串变量。 所以 - 我想做的: 创建一个数组; 创建一个指向这个数组的指针; 将指针作为参数传递给另一个函数; 在第二个函数
在 Eclipse 中运行项目时,Eclipse 会在项目创建时定义的工作区中保存 .py 文件的副本。但导入到项目中的文件可以位于其他位置。 如果使用 os.getcwd() 并从命令行运行脚本,返
我是一名优秀的程序员,十分优秀!