Прокси-сервер и файл / etc / hosts

Тщательный подход

Попробуйте:

while IFS== read -r var value
do
    value="${value#\"}"
    [ "$var" ] && declare "$var=${value%\"}"
done <myconf
echo "$cli"

Это даст результат:

/opt/Solartis_Monitoring/JON_CLI/bin/rhq-cli.sh

Как это работает

  • а IFS == чтение -r значение переменной; do

    Это запускает цикл. Он временно устанавливает разделитель полей, IFS , на знак равенства, = . Затем он считывает строку и разделяет ее на две переменные var и value . var присваивается тому, что находится до первого = , а значение получает все, что находится после первого = .

  • value = "$ {value # \"} "

    Удаляет начальный " из значения.

  • ["$ var"] && объявить "$ var = $ {value% \"} "

    Если var не является пустым, другими словами, если мы не читали пустую строку, присвойте переменной $ var значение $ {value% \ "}" , где $ {value% \ "}" удаляет завершающее " из $ value .

  • done

    Это сигнализирует об окончании цикла и устанавливает ввод цикла из файла myconf .

Доверительный подход

Это источник файла myconf :

. myconf
echo "$cli"

Это дает результат:

/opt/Solartis_Monitoring/JON_CLI/bin/rhq-cli.sh

Поскольку этот подход выполняет файл myconf , он требует, чтобы вы доверяйте тому, кто создал myconf . Если файл myconf содержит какие-либо символы, активные в оболочке, результаты могут быть не такими, как вы хотите.

0
07.05.2015, 15:41
0 ответов

Теги

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