2017-02-10 10 views
0

Итак, я прочитал некоторые другие сообщения и опробовал ответы, но я все еще продолжаю сталкиваться с этой проблемой, поэтому я хотел задать вопрос здесь и посмотрите, есть ли у кого-нибудь другие идеи. Помня, что я довольно новичок в bash, поэтому я уверен, что на данный момент доступен для того, что я ищу.Ошибка Bash Mutt с ошибкой вложений Невозможно установить: нет такого файла или каталога

Я пытаюсь автоматизировать процесс, который создает файл, и отправляет его мне. Все вышеизложенное прекрасно, пока я не попытаюсь автоматически отправить файл по электронной почте.

У меня есть эта строка кода для «отчета» он

эхо | собачонка - "Отчет" "$ USEREMAIL" -s -a "my_scripts/cid_reports/trb345432.csv"

Когда он пробует запустить эту команду он выдает сообщение об ошибке, как

Не можете Stat my_scripts/cid_reports /trb345432.csv: Нет такого файла или каталога my_scripts/cid_reports/trb345432.csv: невозможно подключить файл.

Любые идеи о том, как я могу это исправить? Я думал, что мут хорошо справиться с этим, я собираюсь сыграть с функцией почты и посмотреть, могу ли я добиться успеха.

Система работает на работу Mutt 1.4.2.2i (2006-07-14) Copyright (C) 1996-2002 Michael R. Elkins и другие. Mutt поставляется с абсолютно БЕСПЛАТНОЙ ГАРАНТИЕЙ; для деталей type `mutt -v

+0

Ваше сообщение об ошибке ссылается на другой файл, отличный от указанного в коде. – chepner

+0

Бах, я забыл изменить это, чтобы совместить, и немного сократил код.Имена файлов должны быть одинаковыми. – Rob

ответ

1

no such file or directory в общем смысле означает, что файл не найден. Поскольку вы используете относительный путь, возможно, вы находитесь в другом каталоге?

Если вы наберете cat my_scripts/cid_reports/trb345432.csv из того же каталога, в котором вы запускаете скрипт, находится ли файл?

Или иначе. если вы используете абсолютный путь (обычно '/ home /' uid '/ my_scripts/cid_reports/trb345432.csv`, но ваш путь может быть разным), позволяет ли скрипт найти файл?

(или это должно быть комментарий в вместо ответа, Eventhough он пытается вести посредством нахождения ошибки?)

+0

Thats раздражающая часть, ЕСЛИ я поставил в самом имени файла IE my_scripts/cid_reports/trb345432.csv его штраф, если я ссылаюсь на него как переменную, он выдает эту ошибку. – Rob

+0

Итак, ваша команда на самом деле является «echo» report »| mutt - "$ USEREMAIL" -s "report" -a "$ some_filename" '? Попробуйте поставить для целей отладки 'echo $ some_filename; ls $ some_filename' перед вашим вызовом в MUTT. –

+0

Еще лучше, используйте 'declare -p some_filename'. – chepner

0

От ваших комментариев к ответу LJM Dullaart, вы на самом деле хранения путь к файлу в переменная, то используя это что-то вроде этого:

FILE="~/my_scripts/cid_reports/file.csv" 
echo "report" | mutt -- "$USEREMAIL" -s "report" -a "$FILE" 

Если это то, что вы делаете, проблема заключается в том, что ~ находится в двойных кавычках, и, следовательно, не получает расширен до фактического пути к вашему дому каталог. Таким образом, он ищет подкаталог с буквами «~» в текущем рабочем каталоге и не находит его. Для того, чтобы ~ быть расширен на путь к домашней директории, оставьте его и следующий / в кавычки, например:

file=~/"my_scripts/cid_reports/file.csv" 
echo "report" | mutt -- "$useremail" -s "report" -a "$file" 

Обратите внимание, что я также включил имена переменных в нижний регистр. Это лучший способ избежать конфликтов с различными переменными среды, которые имеют особые значения; специальные - все шапки, поэтому, если вы используете более низкий или смешанный футляр, вы никогда не будете случайным образом путешествовать по ним.

 Смежные вопросы

  • Нет связанных вопросов^_^