為了獲得連續數字的結果,我們創建了一個bash腳本,如下所示。 然而,結果并沒有如愿以償。
#!/bin/bash
test="i am $i"/span>
for i in {1.}
do i {1.
echo "$test"。
done
結果
sh test.sh
我是
我是
我是
我是
我是
我是
我是
我是
我是
我是
但我想要的結果是...... 如下圖所示,我們如何處理這些變數以獲得結果?
i am 1
我是2
我是3
我是4
我是5
我是6
我是7
我是8
我是9
我是10
uj5u.com熱心網友回復:
在變數之外使用$i
#!/bin/bash
test="i am"
for i in {1.}
do i {1.
echo$test $i
done
你也可以在變數里面使用${i}
#!/bin/bash
for i in {1.}
do i {1.
test="i am ${i}"/span>
echo $test
done
結果是:
i am 1
我是2
我是3
我是4
我是5
我是6
我是7
我是8
我是9
我是10
或者你可以在里面用任何你想要的東西替換substr。
例如
#!/bin/bash
test="I am SUBSTR"
for i in {1.}
do i {1.
echo ${test/SUBSTR/$i}
done
當你有多個變數時,我知道這個解決方案:
test="I am SUBSTR and STR2"
for i in {1. 10}
do
o=${test/SUBSTR/$i}
echo ${o/STR2/$i*$i}
done
使用sed也有幫助
#!/bin/bash
test="I am SUBSTR and STR2"
for i in {1. 10}
do i {1.
echo $test | sed -e 's/SUBSTR/'$i'/; s/STR2/'$i '/'
done
uj5u.com熱心網友回復:
你需要寫一個函式,以便延遲評估。
#!/bin/bash
message () { echo "i am $1"; }
for i in {1.}
do
訊息$i
done
或者下面的方法,如果你只想制作資訊的話。
#!/bin/bash
message () { echo "i am $1"; }
for i in {1.}
做
test="$(message $i)"
echo "$test"
done
uj5u.com熱心網友回復:
#!/bin/bash
test='i am $i'/span>
for i in {1.}
do i {1.
eval echo "$test"/span>
done
或者
#!/bin/bash
test='echo "i am $i"'
for i in {1.}
do i {1.
eval "$test"。
done
示例:
yanyong@master: ~$ test='echo "i am $i"'; for i in {1. .10}; do eval "$test"/span>; done
我是1
我是2
我是3
我是4
我是5
我是6
我是7
我是8
我是9
我是10
參考文獻:
https://man7.org/linux/man-pages/man1/eval.1p.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/316192.html
標籤:
上一篇:如何在jinja2中匯入變數
