Команда enix unix не может найти файл, даже если он находится в текущем каталоге

У меня проблема с вызовом env из терминала. Я использую последнюю версию Ubuntu OS. Вот что происходит:

$ ls
disarm.ss  hereis.ss  mat.ss  README  sg.ss  start-test  syntax.ss
$ env SCHEMEHEAPDIRS=/usr/lib/csv8.1/i3le sg.ss
env: sg.ss: No such file or directory

Я проверил, что путь /usr/lib/csv8.1/i3le правильный. Вот права доступа к файлам в этом каталоге:

$ ls -l
total 60
-rw------- 1 dtdannen dtdannen 17375 2011-03-29 23:05 disarm.ss
-rw------- 1 dtdannen dtdannen  9410 2011-03-29 23:05 hereis.ss
-rw------- 1 dtdannen dtdannen  9955 2011-03-29 23:05 mat.ss
-rw------- 1 dtdannen dtdannen   394 2011-03-29 23:05 README
-rwxrwxrwx 1 dtdannen dtdannen  2801 2011-03-29 23:05 sg.ss
-rwx------ 1 dtdannen dtdannen   137 2011-03-29 23:05 start-test
-rw------- 1 dtdannen dtdannen   678 2011-03-29 23:05 syntax.ss

Я не могу понять, почему env не может найти 'sg.ss'. Это проблема с разрешениями? Я знаю, что вам редко следует использовать chmod 777 для файла (здесь я делал это на sg.ss), но я просто хотел посмотреть, сработает ли это. Мне нужно вызывать эту команду в программе Python, а не напрямую через командную строку, но в обоих случаях я получаю одинаковую ошибку, поэтому в качестве примера я использовал терминал.

Любой и все советы приветствуются:)

П.С. Я искал SO по крайней мере 20 минут и не мог найти аналогичный пост. Надеюсь, я не переспрашиваю.

РЕДАКТИРОВАТЬ: пробовал то же самое, но с ./sg.ss вместо просто sg.ss (все еще не работает, та же ошибка :()

1
задан 30 March 2011 в 09:04

3 ответа

Посмотрите на первую строку в файле sg.ss, он, скорее всего, запускает #! / Blah и проверяет, существует ли / blah.

0
ответ дан 30 March 2011 в 09:04

env будет искать переменную среды PATH для поиска вашей утилиты, так же как и поведение вашей оболочки. Используйте ./, если вы хотите обратиться к файлу в текущем каталоге, т.е. :

env SCHEMEHEAPDIRS=/usr/lib/csv8.1/i3le ./sg.ss
0
ответ дан 30 March 2011 в 09:04

Текущий каталог не находится в пути поиска, и поскольку sg.ss не содержит косых черт, он считается именем, которое нужно искать в пути (очень похоже на поведение execl. env SCHEMEHEAPDIRS=/usr/lib/csv8.1/i3le ./sg.ss.

0
ответ дан 30 March 2011 в 09:04

Другие вопросы по тегам:

Похожие вопросы: