我卡在這裏一個bash腳本...SED不解析可變
我有變量:
hostname1="sxxx" hostname2="vbbbb" hostname3="sggg" hostname4="aaa" ...
我試圖改變每一個文件的第12行有一個文件夾中主機名變量。
的文件是server1.txt server2.txt server3.txt server4.txt ...
我試圖用一個while循環來做到這一點:
i=1
imax=1
while [[ $i -le 20 ]]
do
sed -i "12s/.*/$hostname$imax/" server$((imax)).txt
((i++))
((imax++))
if [[ imax -eq 21 ]]
then
imax=1
fi
done
我想sed
做的是連接字主機名與IMAX然後用它作爲變量。 也許這個我很清楚:
$hostname=hostname$imax; //for exammple
sed -i "12s/.*/$hostname/" server$((imax)).txt // i need here the variable $hostname to have the content "sxxx"
任何特定的原因,你有一堆單獨的'hostnameN'變量,而不是數組'hostname [N]'?一個數組將會更容易處理。 –
這是因爲它們是針對遊戲服務器的,每個服務器都應該有單獨的配置文件 – usersubuser
我不認爲你理解我的問題。我無法想象爲什麼遊戲服務器會關心如果你的shell腳本創建配置文件使用12個元素與12個單獨變量的數組。 –