应用场景:
手上有批量执行的脚本主要用来部署上传打包好的程序.所以问题来了:
- 如何读取所有脚本?
- 如何修改文本中类似version="xxx"中的xxx?
- 如何执行脚本时不需要输入密码?
思路:
读取文件列表list,然后循环读取利用for循环,在循环体做你想要的逻辑
代码实现:
#!/usr/bin/env bash
for entry in "$search_dir"/home/xiejinbin/code/mercury/web/setup/*.sh
do
echo "$entry"
echo $entry
#这里是version='xxx'替换成了version='0.8'
sed -i 's/version=".*"/version="0.8"/' $entry
#这里是在aaa上一行加入bbb
sed -i '/sshUser="aaa"/i\sshPass="bbb"' $entry
#利用sshpass无需手动填密码
sed -i 's/ssh -t/sshpass -p ${sshPass} ssh -t/' $entry
sh $entry
done