1. 程式人生 > >linux下shell指令碼中sed命令使用變數

linux下shell指令碼中sed命令使用變數

用linpack做測試,寫了一個指令碼, 因為每次可修改的引數寫在了配置檔案裡,所以腳本里用sed命令來修改配置檔案

#測試次數
echo “Input Number of tests:”
read numt

#每次測試的資料規模,測試次數有多少次,這裡應該又多少組數字,中間以空格隔開
echo “Input Number of equations to solve (problem size):”
read nume

#陣列的主要維度,與資料規模數量相同
echo “Input Leading dimension of array:”
read ld

#執行試驗次數,即單次測試執行次數
echo “Input Number of trials to run:”
read numtr

#資料對齊值,單位是kb
echo “Input Data alignment value (in Kbytes):”

read da

這裡就錄入了四項引數,但是修改配置檔案的sed命令居然不能正確修改配置檔案,後來查了好多資料才知道,sed命令在使用變數的時候,和一般寫法是不一樣的,沒有變數的時候寫法是這樣的:

sed -i '2cIntel(R) Optimized LINPACK Benchmark data' testshellfile

使用變數的時候是這樣的:

sed -i "4c$nume" testshellfile

單引號變成雙引號,關於網上說的$前面需要加/來進行轉義,我這裡也沒有遇到,不加就已經可以了,加了反而會直接打印出來,也許是我還沒遇到需要轉義的地方