用法
使用Shell腳本自動化調參需要對文件進行修改
最初想到調用python進行字符串處理,通過正則表達式匹配然后修改,比較麻煩
偶然發現shell其實自帶sed命令可以處理這個問題
#!/bin/bash
sed -i "26c Delay = $1" camera.lua
運行上述腳本./calib.sh 250
即可將camera.lua
配置文件的第26行改寫為Delay = 250
特殊
若寫入字符串中存在雙引號則需要通過\"
進行轉義
#!/bin/bash
sed -i "2c Name = \"MyCam\"" camera.lua
擴展
- sed
sed
命令可以按行顯示文件,例如
sed -n '26p' camera.lua #顯示camera.lua的第26行內容
添加-i
參數可對文件直接進行修改(慎用)
- $0
shell中一些特殊變量可以獲取外部傳入的參數值
$ ./calib.sh 1 2 3
$0
在shell腳本中用於獲取傳入命令的參數,其中$0
為./calib.sh
即命令本身
$1
為第一個參數,值為1
以此類推$2
$3