我的 bash 文件应打开 html 文件,删除第12行,然后在此行中插入字符串$ f,以便按实际更改数组温度传感器的值。但是当我执行我的替补席时,没有任何内容被编辑
temp.sh
#!/bin/bash
f="myArray_a = ["
for ((i=0 ; 12 - $i ; i++))
do
x=$(cat /sys/bus/w1/devices/28-0000075292ed/w1_slave | grep "t=" | awk -F "t=" '{print $2/1000}')
if [ $i -eq 11 ]
then
x=$(printf %.3f] $x)
f="$f $x"
sed '12 d' index.html
sed -i -e '12i'$f' '$12'\' index.html
else
x=$(printf %.3f, $x)
f="$f $x"
fi
done | column
的index.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<META HTTP-EQUIV="Refresh" CONTENT="10">
<title> Temperature values</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<style type="text/css">
${demo.css}
</style>
<script type="text/javascript">
myArray_a
myArray_a
myArray_a
myArray_a
var myArray_a = [1, 2, 3, 4, 0, 5, 0, 0, 0, 0, 0, 0, 1];
$(function () {
$(document).ready(function () {
Highcharts.setOptions({
global: {
useUTC: false
}
});
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
}
},
title: {
text: 'Live sensor data'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150
},
yAxis: {
title: {
text: 'Value'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
name: 'sensor data',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = 0; i <= 12; i += 1) {
data.push({
x: time + i * 1000,
y: myArray_a[i]
});
}
return data;
}())
}]
});
});
});
</script>
</head>
<body>
<script src="https://code.highcharts.com/highcharts.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
</body>
</html>
答案 0 :(得分:0)
您可以将以下两个sed命令替换为:
sed -i "12c \
$f
" index.html
c
命令用于&#34;更改&#34; (相当于删除然后插入)。
我在这里没有包含$12
变量,因为它似乎不是要注入的字符串的一部分。
更新:
请注意,如果您要替换现有的array_a
,最好不要依赖于代码html中第12行中的行号(array_a
)。
您最好匹配要替换的确切字符串:
sed -i "s/^[ \t]*var myArray_a[^;]*;/$f/" index.html