這是我非常基本的腳本:shell腳本字符串替換使用shell變量
temp=hello
while read line;
do
echo ${line}
done
然而,$ {線}將自身由
我想 「臨時= $ {溫度}的價值」我的腳本回聲「臨時價值是你好」。我試着做很多事情,甚至
echo `echo ${line}`
但是每次都永遠只是打印「臨時的值是$ {}溫度」
我希望這個問題是清楚的。謝謝!
這是我非常基本的腳本:shell腳本字符串替換使用shell變量
temp=hello
while read line;
do
echo ${line}
done
然而,$ {線}將自身由
我想 「臨時= $ {溫度}的價值」我的腳本回聲「臨時價值是你好」。我試着做很多事情,甚至
echo `echo ${line}`
但是每次都永遠只是打印「臨時的值是$ {}溫度」
我希望這個問題是清楚的。謝謝!
這是怎麼回事?
temp=hello
while read line; do
echo "Value of temp = `eval echo ${line}`"
done
然後在控制檯只需鍵入:
${temp}
嗯,我有解決方案eval
,但使用eval是MAUVAIS噸,實際。
$> 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
無用的'貓'的使用:'而讀線; eval echo「$ line」;完成
坦率地說,這些方法之間沒有太大的區別。 –
取決於你在同時正在做什麼。如果你'cat file | while ...'然後while命令在子shell中運行,並且在子體結束時,在while體中設置的任何變量都會消失。所以,可能會有很大的差異。顯然,這不是這種情況,但這是一個教學網站,所以最好是教好的原則。 –
謝謝隊友。這似乎工作,我所做的是用簡單的替換中間行:eval echo「$ {line}」...謝謝! (我會高興,但顯然沒有業力) –