Создать каталог по mkdir - PullRequest
       26

Создать каталог по mkdir

1 голос
/ 29 сентября 2011

Я хочу создать папку с именем пользователя в / 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 ]

6 голосов
/ 29 сентября 2011

Это работает для меня.Возможно, каталог /tmp/vnc не существует, а chdir не работает.Или, может быть, переменная среды $USER не определена, потому что вы запускаете ее, например, из сценария init.d ... Или, возможно, у вас нет прав записи в каталог /tmp/vnc.Вы пытались выполнить mkdir /tmp/vnc/$USER из оболочки?

Невозможно узнать больше без подробностей.

1 голос
/ 01 октября 2014
  1. Пожалуйста, проверьте специальную переменную $!для текстового сообщения об ошибке
  2. Убедитесь, что переменная $ ENV {USER} не содержит лишних кавычек.У меня была похожая проблема в ОС Windows для Activer Perl.Моя проблема была в дополнительных кавычках
0 голосов
/ 29 сентября 2011

если $ ENV {USR} является абсолютным путем (с ведущей косой чертой), то chdir бесполезен, так как вы не используете относительный путь

0 голосов
/ 29 сентября 2011

Возможно, что-то сбрасывает вашу среду, когда вы запускаете скрипт? Можете ли вы распечатать содержимое $ENV{USER} и убедиться, что оно содержит то, что, по вашему мнению, должно?

...