我想创建一个名为/ tmp/vnc /中的用户名的文件夹,我可以在命令行中使用perl -e 'mkdir("$ENV{USER}")'
创建该文件夹,但是对于下面的代码无法工作。通过mkdir创建目录
chdir ("/tmp/vnc") or die -1;
mkdir ("$ENV{USER}", 0777) or die -1;
如果我使用mkdir -p /tmp/vnc/$ENV{USER}
在命令行做文件夹,什么都不会发生,没有错误报告。
我想创建一个名为/ tmp/vnc /中的用户名的文件夹,我可以在命令行中使用perl -e 'mkdir("$ENV{USER}")'
创建该文件夹,但是对于下面的代码无法工作。通过mkdir创建目录
chdir ("/tmp/vnc") or die -1;
mkdir ("$ENV{USER}", 0777) or die -1;
如果我使用mkdir -p /tmp/vnc/$ENV{USER}
在命令行做文件夹,什么都不会发生,没有错误报告。
下创建一个名为username的文件夹谢谢你回答我3年前问的问题。 :-) – thinkman
它适合我。 也许/tmp/vnc
目录不存在,并且chdir
失败。 或者或者$USER
环境变量没有被定义,因为你正在从一个init.d脚本运行它,例如... 或者你可能没有/tmp/vnc
目录中的写权限。你是否尝试过从shell执行mkdir /tmp/vnc/$USER
?
无法知道更多细节。
当您运行脚本时,可能是重置您的环境?你能打印$ENV{USER}
的内容,并确保它包含你认为应该的内容吗?
'...或死“mkdir中的错误:$!\ n”'可能会告诉你更多。 '$!'为您提供以前失败操作的错误代码。 –
非常感谢。它说“mkdir:File exists中存在错误”,但用户名命名的目录不存在。 – thinkman
@thinkman也许有一个文件(或一个先进先出,或套接字)具有相同的名称。你不能拥有一个同名的目录和文件。 – rodrigo