通过mkdir创建目录



我想在/tmp/vnc/中创建一个以用户名命名的文件夹,我可以在命令行中使用perl -e 'mkdir("$ENV{USER}")'创建该文件夹,但对于以下代码无法工作。

chdir ("/tmp/vnc") or die -1;
mkdir ("$ENV{USER}", 0777) or die -1;

如果我在命令行中使用mkdir -p /tmp/vnc/$ENV{USER}来创建文件夹,没有任何事情发生,也没有错误报告。

适合我。可能/tmp/vnc目录不存在,chdir失败。或者可能没有定义$USER环境变量,因为您正在从init运行它。比如D脚本…或者您在/tmp/vnc目录中没有写权限。你试过从shell执行mkdir /tmp/vnc/$USER吗?

  1. 请检查特殊变量$!查看文本错误消息
  2. 请检查变量$ENV{USER}没有包含额外的引号。我在Windows操作系统中有类似的问题。我的问题是在额外的引号

当您运行脚本时,可能有东西正在重置您的环境?你可以打印$ENV{USER}的内容,并确保它包含你认为应该包含的内容吗?

如果$ENV{USR}是绝对路径(以斜杠开头),那么chdir是无用的,因为您没有使用相对路径

最新更新