通过mkdir创建目录

时间:2011-09-28 22:53:11

标签: linux perl directory 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}来创建文件夹,则没有任何反应并且没有错误报告。

4 个答案:

答案 0 :(得分:6)

它对我有用。 可能/tmp/vnc目录不存在,chdir失败。 或者可能没有定义$USER环境变量,因为您是从init.d脚本运行它,例如...... 或者您可能没有/tmp/vnc目录中的写权限。您是否尝试过从shell执行mkdir /tmp/vnc/$USER

没有细节,无法了解更多信息。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在运行脚本时,或许某些事情会重置您的环境?您可以打印$ENV{USER}的内容并确保它包含您认为应该包含的内容吗?

答案 3 :(得分:0)

如果$ ENV {USR}是一个绝对路径(带有前导斜杠),那么由于你没有使用相对路径,所以chdir是无用的