замена строки сценария оболочки с помощью переменных оболочки - PullRequest
1 голос
/ 02 октября 2011

Это мой самый простой сценарий:

  temp=hello 
  while read line;
  do
     echo ${line}
  done

Однако $ {line} будет состоять из "value of temp = $ {temp}"

Я хочу, чтобы мой скрипт отображал "значение temp is hello". Я пытался сделать много вещей, даже

echo `echo ${line}`

но каждый раз, когда он всегда печатает "значение temp равно $ {temp}"

Надеюсь, этот вопрос понятен. Спасибо!

Ответы [ 2 ]

1 голос
/ 02 октября 2011

Ну, у меня есть решения с eval, но на самом деле использование eval - это mauvais ton.

$> cat 7627845.sh 
#!/bin/bash

temp=hello 
cat file_with_values.log | while read line;
do
    eval echo "${line}"
done


$> cat file_with_values.log 
value of temp = ${temp}

$> ./7627845.sh 
value of temp = hello
1 голос
/ 02 октября 2011

Как насчет этого?

temp=hello 
while read line; do
    echo "Value of temp = `eval echo ${line}`"
done

Затем в консоли просто наберите:

${temp}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...