我想在/ 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}
来创建文件夹,则没有任何反应并且没有错误报告。
答案 0 :(得分:6)
它对我有用。
可能/tmp/vnc
目录不存在,chdir
失败。
或者可能没有定义$USER
环境变量,因为您是从init.d脚本运行它,例如......
或者您可能没有/tmp/vnc
目录中的写权限。您是否尝试过从shell执行mkdir /tmp/vnc/$USER
?
没有细节,无法了解更多信息。
答案 1 :(得分:1)
答案 2 :(得分:0)
在运行脚本时,或许某些事情会重置您的环境?您可以打印$ENV{USER}
的内容并确保它包含您认为应该包含的内容吗?
答案 3 :(得分:0)
如果$ ENV {USR}是一个绝对路径(带有前导斜杠),那么由于你没有使用相对路径,所以chdir是无用的