То, как вы это делаете, должно работать. Например, следующее должно (попытаться) получить доступ как к info.txt
, так и к something_else.txt
. Обратите внимание, что две команды echo
идентичны.
#!/bin/sh
FILE_PROPERTIES="info.txt"
echo `grep "ENVOI_MAIL=" ${FILE_PROPERTIES} | cut -d "=" -f "2"`
FILE_PROPERTIES="something_else.txt"
echo `grep "ENVOI_MAIL=" ${FILE_PROPERTIES} | cut -d "=" -f "2"`
Одна из возможных проблем заключается в том, что если имя файла содержит пробелы, оно будет отображаться для команды grep
как два аргумента. Вы можете избежать этого, используя кавычки (в любом случае, неплохая идея). (В этом случае фигурные скобки не требуются, но идея тоже неплохая.)
echo `grep "ENVOI_MAIL=" "${FILE_PROPERTIES}" | cut -d "=" -f "2"`
Кроме того, большинство современных оболочек поддерживают синтаксис $(...)
, который немного удобнее, чем форма обратной кавычки (во-первых, она может быть вложенной):
echo $(grep "ENVOI_MAIL=" "${FILE_PROPERTIES}" | cut -d "=" -f "2")
Наконец, echo
, вероятно, не нужен, если вам действительно не нужна обработка пробелов echo
. Вы можете попробовать это вместо этого:
grep "ENVOI_MAIL=" "${FILE_PROPERTIES}" | cut -d "=" -f "2"
(Я не проверял все эти команды, поэтому следите за опечатками.)
person
Keith Thompson
schedule
10.01.2012
export FILE_PROPERTIES="info.txt"
работает? - person Daniel Fischer   schedule 10.01.2012