Perl chdir 错误

发布于 2024-12-11 08:12:59 字数 489 浏览 0 评论 0原文

我正在尝试在 UNIX 中使用 Perl 更改工作目录(用于配置 WebShpere MQ 队列管理器)。

我必须转到目录 /var/mqm/qmgrs/Q\!MAN 并且我使用了以下代码片段:

$QueueManagerPathName = 'Q\!MAN';
chdir('/var/mqm/qmgrs/'.$QueueManagerPathName) or die "Cannot change to dir : /var/mqm/qmgrs/".$QueueManagerPathName."\n";

但它不会更改目录并死掉

Cannot change to dir : /var/mqm/qmgrs/Q\!MAN

当我删除变量 $QueueManagerPathName 工作正常,我得出的结论是使用 "\!" 部分会出错。

I am trying to change the working directory (for configure a WebShpere MQ Queue manager) using Perl in UNIX.

I have to go to the directory /var/mqm/qmgrs/Q\!MAN and I have used following code snippet:

$QueueManagerPathName = 'Q\!MAN';
chdir('/var/mqm/qmgrs/'.$QueueManagerPathName) or die "Cannot change to dir : /var/mqm/qmgrs/".$QueueManagerPathName."\n";

But it does not change the directory and dies giving

Cannot change to dir : /var/mqm/qmgrs/Q\!MAN

When i remove the variable $QueueManagerPathName its working fine and it concludes me that it would be error using "\!" part.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我恋#小黄人 2024-12-18 08:12:59

您不需要在目录名称中转义 ! 。这应该有效:

my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";

You don't need to escape ! in the directory name. This should work:

my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";
巾帼英雄 2024-12-18 08:12:59

单引号字符串不会插入反斜杠,因此您尝试更改为名为 /var/mqm/qmgrs/Q\!MAN 的目录,

或者省略反斜杠,或者使用双引号字符串。

Single quoted strings do not interpolate backslash, so you're trying to change to a directory called /var/mqm/qmgrs/Q\!MAN

Either omit the backslash, or use a double-quoted string.

拥醉 2024-12-18 08:12:59

你的变量中有一个反斜杠......我想说你正在做太多转义。

You have a backslash in your variable... I'd say that you are doing to much escaping.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文