我正在尝试在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
时,它的工作正常,并且我认为使用"\!"
部分会出错。
答案 0 :(得分:2)
单引号字符串不插入反斜杠,因此您尝试更改为名为/ var / mqm / qmgrs / Q \!MAN的目录
省略反斜杠,或使用双引号字符串。
答案 1 :(得分:2)
您无需在目录名称中转义!
。这应该有效:
my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";
答案 2 :(得分:0)
你的变量中有一个反斜杠......我会说你正在做很多的逃避。