-
ignition251 说:
@ChatGPT 在音频行业里,dBA指的是什么,详细说明一下。
在音频行业中,dBA指的是一个声压级的测量单位,它是加权的声压级,用于指示人耳听到的声音相对于其他频率下的声音强度。
“A”指的是一个经过加权的滤波器,Simson Ampère发明了这个滤波器,可以减轻低频声音对人耳的刺激。dBA通常用于表示人类可接受的声音水平范围,人耳对不同频率下的声音敏感度并不相同,所以使用加权指数可以更好地描述人耳感知到的声音强度。
dBA通常用来衡量噪声水平,例如在城市中的交通噪音或工业噪声等情况下,使用dBA可以更准确地表示人类感知到的声音强度。
需要注意的是,虽然dBA可以用来表示正常的听力范围,但它并不是用来测量个人听力的指标。
-
说明dba和dbspl的区别@ChatGPT
-
ignition251 说:
@ChatGPT 说明dba和dbspl的区别
DBA是数据库管理员(Database Administrator)的缩写,而DBSPL则是数据库专员(Database Specialist)的缩写。它们之间的区别在以下方面:
-
职责和工作范围:DBA通常负责管理整个数据库系统并确保其高效运行。他们负责安装数据库软件、设置安全性、维护数据备份和恢复程序、优化性能、监控应用程序等。而DBSPL则专注于数据库中的一些特定技术,例如查询优化、索引设计、数据仓库等。
-
技能要求:DBA需要具备广泛的技术知识,包括操作系统、网络、存储技术、数据模型等多个领域。而DBSPL则需要深入了解数据库技术、SQL、数据建模等具体技能。
-
经验要求:DBA往往需要具备多年的实际经验和高水平的专业技能进行复杂的数据库管理。而DBSPL则可能需要相对较少的经验和高度关注数据细节。
总的来说,DBA和DBSPL都是与数据库系统相关的职位,但它们的职责、技能和工作范围略有不同。
-
-
ignition251 说:
@ChatGPT 如何看懂等响曲线图?
等响曲线图展示了声音的响度和频率之间的关系,它可以用于了解不同频率声音的响度和你可能听到的最小和最大频率。
以下是如何阅读等响曲线图:
- 确定图表的坐标轴:等响曲线图通常具有频率(Hz)和响度(dB SPL)坐标轴。
- 查看曲线的形状:通过查看图表中的曲线的形状,可以了解声音频率对响度的变化方式。如果图表上的曲线相对较平,表示该频率范围内的声音的响度相对较为平稳。如果曲线上升得越高,表示该频率范围内的声音的响度越大。
- 查看响度值:响度值通常以dB SPL为单位。更高的dB SPL数值表示更响的声音。
- 查看频率范围:等响曲线图通常呈现一定范围内的频率。该范围内的声音响度相等。因此,“等响”也就意味着声音在这个范围内的响度相同。
总之,等响曲线图可以表达某一频率下相同响度的声音响度分布情况。比较不同频率的等响曲线,可以看出声音的频率响度特征,对于声音质量评估和噪声控制有着很重要的实际意义。
-
ignition251 说:
@ChatGPT where can i find some e-guitar solo staffs or tabs for practice, please present me some useful and powerful source.
There are many websites online that provide guitar solo tabs and sheet music for practice. Here are a few popular options:
-
Ultimate Guitar: This website has a large collection of guitar tabs for all skill levels, with a focus on rock and metal music. You can search for specific songs or browse by artist.
-
Songsterr: Songsterr offers interactive guitar tabs that play along with you, making it easier to learn the proper timing and technique for each solo. They also have a mobile app for practicing on the go.
-
Guitar Pro: Guitar Pro is a software program that allows you to view and play guitar tablature, as well as customize and create your own tabs. It requires a paid subscription, but is a powerful tool for serious guitarists.
-
JamPlay: JamPlay is a subscription-based online guitar lesson platform that includes a large library of guitar solo lessons, as well as live classes and forums for interacting with other guitarists.
-
YouTube: There are countless guitarists on YouTube who offer guitar solo tutorials and demonstrations. Some popular channels include GuitarLessons365Song and Andy Guitar.
-
-
malaohu 说:
@ChatGPT 如何快速学习英语
学习英语需要耐心和恒心,以下是一些快速学习英语的技巧和建议:
-
练习听说能力:通过看英语电影、电视节目和YouTube视频,提高听力和口语水平,模仿演员和主持人的口音和语调。
-
学习常用语句:学习一些常用的英语短语和句子,以便在日常对话中使用。
-
读英语材料:阅读英语文章、小说和报纸,提高词汇量和阅读理解能力。
-
利用在线学习资源:使用英语学习应用程序和在线课程,这些都可以提供个性化的学习体验。
-
找到英语学习伙伴:找到一个英语母语国家的学习伙伴,与他们一起练习英语口语和交流。
-
创造语言环境:在日常生活中创造英语语言环境,例如使用英文标签、看英文电视等等。
-
参加英语学习活动:加入英语学习社区和学习小组,参加英语活动和讨论。
请记住,学习英语是一个长期的过程,需要坚持和不断努力才能看到进步。
-
-
会飞的大象 说:
@ChatGPT 以开沃尔沃去郊游写一个日记
日期:2021年7月10日
今天是个美丽的夏日,我和一帮朋友开着一辆金色的沃尔沃S60来到了这座美丽的郊外公园。
早上9点,我们一行人在沃尔沃展厅门前集合,很快我们就开车出发了。一路上,驾驶这台豪华轿车的感觉简直太棒了。车艇般的外形设计,配备着行驶稳定的悬挂系统,扭矩强劲的动力系统和高效的刹车设计。我们在路上开的很稳健,车内空气非常清新,真的很舒适。
到达公园后,我们立刻感受到了大自然的美丽。公园内有着壮观的自然景观,草地上开满了五颜六色的鲜花,山峦起伏,蓝天白云,让人心旷神怡。
我们首先选了一个空旷的草地,为车辆准备烧烤和野餐的工具。一边烧烤,一边品尝新鲜的果汁和啤酒,让我们感觉非常惬意。
下午,我们决定去公园内的湖畔划船。沃尔沃S60在行驶中瞬间加速,驾驶起来如此平稳,感觉非常安全。我们喜欢这种完美的车辆设计!船是在阳光下微波荡漾,我们身着舒适的衣物,享受这样美妙的时光。
天色渐渐暗了下来,我们也开始准备离开。拿起野餐的垃圾,打扫了烧烤和玩耍的场所,整洁了我们的座位,并准备驾驶沃尔沃回家。
总结:这是一个充满乐趣和惊喜的一天,在沃尔沃的陪伴下,我们度过了一个完美的休闲时光。
-
会飞的大象 说:
@ChatGPT 以开沃尔沃去黄山游玩写一篇文章
本文将会为读者介绍一次开着沃尔沃去黄山游玩的旅行经历。
第一天,我们一早就出发了。我们兴冲冲地开着沃尔沃去黄山。一路上我们欣赏着美丽的风景,感受着沃尔沃的稳定和舒适性,沃尔沃的自适应巡航功能让我们很放心地驾驶在高速公路上。我们开了一整天,当晚我们落脚在距离黄山风景区不远的酒店里。酒店环境十分舒适,我们就在那里吃了晚饭,准备好了第二天的旅行。
第二天一早,我们整装出发去登山。沃尔沃的驾驶辅助功能非常实用,它让我们很轻松地驾驶上山。我们在山上走走停停,欣赏着黄山著名的山峰和奇景。当我们看到虎跑、一线天、半山亭等景点的时候,都不自觉地惊叹了起来。山顶的云海和日出也让我们大开眼界,感受到了大自然的神奇与美妙。
第三天,我们离开了黄山大酒店,前往新安江大峡谷。沃尔沃的集成导航系统让我们很顺利地找到了目的地。新安江大峡谷的景点也很独特,我们在那里看到了高耸的悬崖峭壁和清澈的江水。漂流和攀岩等活动也让我们度过了一个充实又有趣的下午。
整个旅程中,我们的沃尔沃车子和智能化驾驶系统让我们感受到了安全和便捷性。即使是山路上的弯道,也都能够平稳地驶过。而且我们的沃尔沃车子的空间很大,我们能够轻松携带大量行李和装备。这次旅行不仅让我们欣赏到了黄山美丽的景色,更让我们深深感受到了沃尔沃车子的驾驶舒适性和高端智能化配置的实用性。
总之,这次开着沃尔沃去黄山游玩的旅行,给了我们难以忘怀的美好回忆。强大的驾驶辅助系统和宽敞的空间让我们的旅行充满了轻松和舒适。在欣赏美景的同时,我们体验到了沃尔沃车子的高端性和智能人性化配置的实用性,让我们对这款车深深地向往和爱慕。
-
690779301gagacui 说:
@ChatGPT 写一个从网站读取文章阅读量的代码,要求如下
1.网站已显示标题和点击量
2.需要读取网站的标题和对应的点击量数据,并用exsl表格显示数据
3.实现自动抓取数据这里演示的是使用Python语言并结合BeautifulSoup和requests模块实现从指定网站读取文章阅读量的代码。具体实现步骤如下:
- 首先需要用requests模块获取网页的html源代码,并解析成BeautifulSoup对象,这里以http://www.example.com为例:
import requests from bs4 import BeautifulSoup response = requests.get("http://www.example.com") soup = BeautifulSoup(response.text, 'html.parser')
- 接下来找到网页上显示标题和点击量的HTML元素,并提取出标题和点击量数据。这里假设标题和点击量分别存放在网页上class为"title"和"views"的元素中:
titles = [title.text for title in soup.find_all(class_="title")] views = [int(view.text) for view in soup.find_all(class_="views")]
- 最后使用exsl表格显示数据。这里可以使用pandas库将数据转换成DataFrame格式,并保存为excel文件:
import pandas as pd data = {'Title': titles, 'Views': views} df = pd.DataFrame(data) df.to_excel('views.xlsx', index=False)
完整代码如下:
import requests from bs4 import BeautifulSoup import pandas as pd response = requests.get("http://www.example.com") soup = BeautifulSoup(response.text, 'html.parser') titles = [title.text for title in soup.find_all(class_="title")] views = [int(view.text) for view in soup.find_all(class_="views")] data = {'Title': titles, 'Views': views} df = pd.DataFrame(data) df.to_excel('views.xlsx', index=False)
注意:实际使用时需要根据具体网站的HTML结构来修改代码中的选择器和提取逻辑,同时需要添加异常处理等保障代码的健壮性。
-
@ChatGPT 用python重写下列base脚本
#!/bin/bash
argv=$1
#deploy=$1
count=0
filename=()
isTar=1
if [ $isTar == "1" ]
thenpath=
cd $(dirname $0);pwd -P
#echo the current path is:$path
for i inls
do
filegz="tar.gz"
if [[ $i == $filegz ]]
then
#echo $i
filename[count]=$i
count=expr $count + 1
fi
done#echo $count
#echo ${filename[@]}
for((n=0;n<${#filename[@]};n++)){
echo -e "\033[40;35m"$n"\033[0m \033[40;32m"${filename[n]}"\033[0m"
}if (("$count" <= "0"));
then
echo "请下载部署包"
exit
elif (("$count" == "1"));
then
if [ $argv == "PBox" ];
then
tar zxvf ${filename[0]} -C /pbox
else
tar zxvf ${filename[0]} -C /mnt
fi
else
echo -e "\033[40;36m 请选择部署包:\033[0m"
read inNum
if (("$inNum" < "0")) || (("$inNum" >= "$count"))
then
echo "索引错误"
exit
else
if [ $argv == "PBox" ];
then
tar zxvf ${filename[0]} -C /pbox
else
tar zxvf ${filename[0]} -C /mnt
fi
fi
fi
fi#echo "解压部署包"
#echo $deploy
#tar -zxvf $deploy
#echo "解压部署包完成"inspect(){
if [ $argv != "PBox16.04" ];
then
cp -rf /mnt/profile /etc/
fi
if [ ! -d "/mnt/FCloudComm" ]
then
echo "1"
exit
fi
if [ ! -f "/mnt/run.sh" ]
then
echo "2"
exit
fiif [ ! -f "/usr/lib/libiconv.so.2.6.1" ]; then cp -rf /mnt/FCloudComm/bin/libiconv.so.2.6.1 /usr/lib/ ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so.2 fi sed -i '/source/d' /etc/init.d/rc.local sed -i '$a source /mnt/run.sh' /etc/init.d/rc.local #taosd &>/dev/null echo "历史数据库安装完成"
}
inspectPBox(){
if [ ! -d "/pbox/FCloudComm" ]
then
echo "1"
exit
fi
if [ ! -f "/pbox/run.sh" ]
then
echo "2"
exit
fiif [ ! -f "/usr/lib/libiconv.so.2.6.1" ]; then cp -rf /pbox/FCloudComm/bin/libiconv.so.2.6.1 /usr/lib/ ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so.2 fi #taosd &>/dev/null echo "历史数据库安装完成"
}
echo "拷贝系统文件"
if [ $argv == "8401d" ];
then
cp -rf ./libstdc++.so.6 /usr/lib/arm-linux-gnueabihf/
cp -rf ./libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/
fiif [ $argv == "ISG" ];
then
cp -rf ./libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/
ln -sf /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6if [ ! -f "/usr/lib/libatomic.so.1.0.0" ];
then
cp -rf /mnt/FCloudComm/bin/libatomic.so.1.0.0 /usr/lib/
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so.1
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so
fi
fiecho "拷贝系统文件完成"
echo -e "\033[40;36m 网口选择 单网(1)双网(2) \033[0m"
read input
#echo $input
if [ $input == "1" ];
then
sed -i 's/NetCardCount = "2"/NetCardCount = "1"/g' /mnt/FCloudComm/bin/pSL_Setting.xml
sed -i '/sleep 1/d' /mnt/FCloudComm/tools/IPCfg
sed -i '/ifconfig eth1 192.168.20.101 netmask 255.255.255.0 up/d' /mnt/FCloudComm/tools/IPCfg
sed -i '/route add default gw 192.168.20.1 dev eth1/d' /mnt/FCloudComm/tools/IPCfg
fi
echo "网口配置完成"#4G函数
echo -e "\033[40;36m 是否支持4G? 否(0)是(1) \033[0m"read -p "" number
if [ $number -eq 0 ];
then
if [ $argv == "8401d" ];
then
sed -i '/active4g.sh/d' /mnt/run.sh
fiif [ $argv == "PBox" ]; then sed -i '/quectel-pppd.sh/d' /pbox/run.sh fi if [ $argv == "PBox16.04" ]; then sed -i '/quectel-pppd.sh/d' /mnt/run.sh fi
fi
if [ $number -eq 1 ];
then
if [ $argv == "8401d" ];
then
sed -i '/active4g.sh/d' /mnt/run.sh
sed -i '/sleep 10/i\sh ./active4g.sh &' /mnt/run.sh
fiif [ $argv == "PBox" ]; then sed -i '/quectel-pppd.sh/d' /pbox/run.sh sed -i '/sleep 10/i\sh ./quectel-pppd.sh &' /pbox/run.sh fi if [ $argv == "PBox16.04" ]; then sed -i '/quectel-pppd.sh/d' /mnt/run.sh sed -i '/sleep 10/i\sh ./quectel-pppd.sh &' /mnt/run.sh fi
fi
if [ $number -ne 1 ] && [ $number -ne 0 ];
then
echo "输入错误"
fiecho "配置开机启动"
if [ $argv == "8401d" ];
then
sed -i '1c #! /bin/bash' /etc/init.d/rc.local
fiif [ $argv == "PBox16.04" ];
then
sed -i '1c #! /bin/bash' /etc/rc.local
fiif [ $argv == "ISG" ];
then
sed -i '1c #! /bin/bash' /etc/init.d/rocktech.sh
sed -i '/source/d' /etc/init.d/rocktech.sh
sed -i '$a source /mnt/run.sh' /etc/init.d/rocktech.sh
sed -i '/source/d' /etc/init.d/rc.local
sed -i "114s:#::g" /etc/init.d/rocktech.sh
fiecho "配置开机启动完成"
echo "初始化本地ip地址"
sed -i 's/address 190.5.20.171/address 192.168.10.101/g' /etc/network/interfaces
sed -i 's/gateway 190.5.200.11/gateway 192.168.10.1/g' /etc/network/interfaces
sed -i 's/address 192.168.1.100/address 192.168.20.101/g' /etc/network/interfaces
sed -i 's/gateway 192.168.1.1/gateway 192.168.20.1/g' /etc/network/interfaces
echo "初始化本地ip地址结束"echo "配置历史数据库"
#td库ISG网关配置
td(){
cd /mnt/TDengine-server-2.0.10.0/
./install.sh &>/dev/null
sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg
sed -i 's/# fqdn/fqdn/g' /etc/taos/taos.cfg
sed -i 's/hostname/localhost/g' /etc/taos/taos.cfg
}#PBox网关配置
PB(){
if [ ! -f "/usr/lib/libatomic.so.1.0.0" ];
then
cp -rf /pbox/FCloudComm/bin/libatomic.so.1.0.0 /usr/lib/
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so.1
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so
fised -i '1c #! /bin/bash' /etc/init.d/rc.local cd /pbox/TDengine-server-2.0.10.0 ./install.sh &>/dev/null sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg sed -i 's/# logDir/ logDir/g' /etc/taos/taos.cfg sed -i 's/# dataDir/ dataDir/g' /etc/taos/taos.cfg sed -i 's#/var/log/taos#/pbox/log#g' /etc/taos/taos.cfg sed -i 's#/var/lib/taos#/pbox/lib#g' /etc/taos/taos.cfg sed -i '/run.sh/d' /etc/rc5.d/S99rmnologin.sh sed -i '$a source /pbox/run.sh' /etc/rc5.d/S99rmnologin.sh
}
power(){
source /mnt/FCloudComm/tools/setEnv.sh
if [ -d "/mnt/config" ];then
#echo "文件夹存在"if [ -f "/mnt/config/hardwareinfo.HID" ];then #echo "文件存在" cp -rf /mnt/config/hardwareinfo.HID /mnt/FCloudComm else #echo "文件不存在" echo "配置完成 请放入HID 和 授权文件" /mnt/FCloudComm/bin/getID fi if [ -f "/mnt/config/"*".lic" ];then #echo "文件存在" cp -rf /mnt/config/*.lic /mnt/FCloudComm/bin else #echo "文件不存在" echo "配置完成 请放入HID 和 授权文件" /mnt/FCloudComm/bin/getID fi else #echo "文件夹不存在" echo "配置完成 请放入HID 和 授权文件" /mnt/FCloudComm/bin/getID fi #echo "配置完成 请放入HID 和 授权文件" #/mnt/FCloudComm/bin/getID
}
powerPBox(){
source /pbox/FCloudComm/tools/setEnv.sh
if [ -d "/pbox/config" ];then
#echo "文件夹存在"if [ -f "/pbox/config/hardwareinfo.HID" ];then #echo "文件存在" cp -rf /pbox/config/hardwareinfo.HID /pbox/FCloudComm else #echo "文件不存在" echo "配置完成 请放入HID 和 授权文件" /pbox/FCloudComm/bin/getID fi if [ -f "/pbox/config/"*".lic" ];then #echo "文件存在" cp -rf /pbox/config/*.lic /pbox/FCloudComm/bin else #echo "文件不存在" echo "配置完成 请放入HID 和 授权文件" /pbox/FCloudComm/bin/getID fi else #echo "文件夹不存在" echo "配置完成 请放入HID 和 授权文件" /pbox/FCloudComm/bin/getID fi #echo "配置完成 请放入HID 和 授权文件" #/pbox/FCloudComm/bin/getID
}
case "$1" in
8401d)
cd /mnt/TDengine-server-2.0.10.0
./install.sh &>/dev/null
sed -i 's#/third/log#log#g' /etc/taos/taos.cfg
sed -i 's#/third/data#data#g' /etc/taos/taos.cfg
sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg
inspect
power
;;
8316)
i="0"
while read path
do
if [ "$path" == "127.0.0.1 GEA-8316-DLK" ];
then
i="1"
fi
done < /etc/hostsif [ "$i" != "1" ]; then sed -i '$a\127.0.0.1 GEA-8316-DLK' /etc/hosts fi cd /mnt/TDengine-server-2.0.10.0 ./install.sh &>/dev/null sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg inspect power ;; ISG) i="0" while read path do if [ "$path" == "127.0.0.1 localhost" ]; then i="1" fi done < /etc/hosts if [ "$i" != "1" ]; then echo "127.0.0.1 localhost"> /etc/hosts fi td inspect power ;; PBox) i="0" while read path do if [ "$path" == "127.0.0.1 imx6ull14x14evk" ]; then i="1" fi done < /etc/hosts if [ "$i" != "1" ]; then echo "127.0.0.1 imx6ull14x14evk"> /etc/hosts fi PB inspectPBox powerPBox ;; PBox16.04) pkexec chown root:root /etc/sudoers /etc/sudoers.d -R td inspect power sed -i '/source/d' /etc/init.d/rc.local sed -i '/source/d' /etc/rc.local sed -i '/sleep 1/isource /mnt/run.sh' /etc/rc.local ;;
esac
-
for culture 说:
@ChatGPT 用python重写下列base脚本
#!/bin/bash
argv=$1
#deploy=$1
count=0
filename=()
isTar=1
if [ $isTar == "1" ]
thenpath=
cd $(dirname $0);pwd -P
#echo the current path is:$path
for i inls
do
filegz="tar.gz"
if [[ $i == $filegz ]]
then
#echo $i
filename[count]=$i
count=expr $count + 1
fi
done#echo $count
#echo ${filename[@]}
for((n=0;n echo -e "\033[40;35m"$n"\033[0m \033[40;32m"${filename[n]}"\033[0m"
}if (("$count" then
echo "请下载部署包"
exit
elif (("$count" == "1"));
then
if [ $argv == "PBox" ];
then
tar zxvf ${filename[0]} -C /pbox
else
tar zxvf ${filename[0]} -C /mnt
fi
else
echo -e "\033[40;36m 请选择部署包:\033[0m"
read inNum
if (("$inNum" = "$count"))
then
echo "索引错误"
exit
else
if [ $argv == "PBox" ];
then
tar zxvf ${filename[0]} -C /pbox
else
tar zxvf ${filename[0]} -C /mnt
fi
fi
fi
fi#echo "解压部署包"
#echo $deploy
#tar -zxvf $deploy
#echo "解压部署包完成"inspect(){
if [ $argv != "PBox16.04" ];
then
cp -rf /mnt/profile /etc/
fi
if [ ! -d "/mnt/FCloudComm" ]
then
echo "1"
exit
fi
if [ ! -f "/mnt/run.sh" ]
then
echo "2"
exit
fiif [ ! -f "/usr/lib/libiconv.so.2.6.1" ];
then
cp -rf /mnt/FCloudComm/bin/libiconv.so.2.6.1 /usr/lib/
ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so
ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so.2
fised -i '/source/d' /etc/init.d/rc.local
sed -i '$a source /mnt/run.sh' /etc/init.d/rc.local#taosd &>/dev/null
echo "历史数据库安装完成"}
inspectPBox(){
if [ ! -d "/pbox/FCloudComm" ]
then
echo "1"
exit
fi
if [ ! -f "/pbox/run.sh" ]
then
echo "2"
exit
fiif [ ! -f "/usr/lib/libiconv.so.2.6.1" ];
then
cp -rf /pbox/FCloudComm/bin/libiconv.so.2.6.1 /usr/lib/
ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so
ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so.2
fi#taosd &>/dev/null
echo "历史数据库安装完成"}
echo "拷贝系统文件"
if [ $argv == "8401d" ];
then
cp -rf ./libstdc++.so.6 /usr/lib/arm-linux-gnueabihf/
cp -rf ./libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/
fiif [ $argv == "ISG" ];
then
cp -rf ./libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/
ln -sf /usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.21 /usr/lib/arm-linux-gnueabihf/libstdc++.so.6if [ ! -f "/usr/lib/libatomic.so.1.0.0" ];
then
cp -rf /mnt/FCloudComm/bin/libatomic.so.1.0.0 /usr/lib/
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so.1
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so
fi
fiecho "拷贝系统文件完成"
echo -e "\033[40;36m 网口选择 单网(1)双网(2) \033[0m"
read input
#echo $input
if [ $input == "1" ];
then
sed -i 's/NetCardCount = "2"/NetCardCount = "1"/g' /mnt/FCloudComm/bin/pSL_Setting.xml
sed -i '/sleep 1/d' /mnt/FCloudComm/tools/IPCfg
sed -i '/ifconfig eth1 192.168.20.101 netmask 255.255.255.0 up/d' /mnt/FCloudComm/tools/IPCfg
sed -i '/route add default gw 192.168.20.1 dev eth1/d' /mnt/FCloudComm/tools/IPCfg
fi
echo "网口配置完成"#4G函数
echo -e "\033[40;36m 是否支持4G? 否(0)是(1) \033[0m"read -p "" number
if [ $number -eq 0 ];
then
if [ $argv == "8401d" ];
then
sed -i '/active4g.sh/d' /mnt/run.sh
fiif [ $argv == "PBox" ];
then
sed -i '/quectel-pppd.sh/d' /pbox/run.sh
fiif [ $argv == "PBox16.04" ];
then
sed -i '/quectel-pppd.sh/d' /mnt/run.sh
fi
fiif [ $number -eq 1 ];
then
if [ $argv == "8401d" ];
then
sed -i '/active4g.sh/d' /mnt/run.sh
sed -i '/sleep 10/i\sh ./active4g.sh &' /mnt/run.sh
fiif [ $argv == "PBox" ];
then
sed -i '/quectel-pppd.sh/d' /pbox/run.sh
sed -i '/sleep 10/i\sh ./quectel-pppd.sh &' /pbox/run.sh
fiif [ $argv == "PBox16.04" ];
then
sed -i '/quectel-pppd.sh/d' /mnt/run.sh
sed -i '/sleep 10/i\sh ./quectel-pppd.sh &' /mnt/run.sh
fi
fiif [ $number -ne 1 ] && [ $number -ne 0 ];
then
echo "输入错误"
fiecho "配置开机启动"
if [ $argv == "8401d" ];
then
sed -i '1c #! /bin/bash' /etc/init.d/rc.local
fiif [ $argv == "PBox16.04" ];
then
sed -i '1c #! /bin/bash' /etc/rc.local
fiif [ $argv == "ISG" ];
then
sed -i '1c #! /bin/bash' /etc/init.d/rocktech.sh
sed -i '/source/d' /etc/init.d/rocktech.sh
sed -i '$a source /mnt/run.sh' /etc/init.d/rocktech.sh
sed -i '/source/d' /etc/init.d/rc.local
sed -i "114s:#::g" /etc/init.d/rocktech.sh
fiecho "配置开机启动完成"
echo "初始化本地ip地址"
sed -i 's/address 190.5.20.171/address 192.168.10.101/g' /etc/network/interfaces
sed -i 's/gateway 190.5.200.11/gateway 192.168.10.1/g' /etc/network/interfaces
sed -i 's/address 192.168.1.100/address 192.168.20.101/g' /etc/network/interfaces
sed -i 's/gateway 192.168.1.1/gateway 192.168.20.1/g' /etc/network/interfaces
echo "初始化本地ip地址结束"echo "配置历史数据库"
#td库ISG网关配置
td(){
cd /mnt/TDengine-server-2.0.10.0/
./install.sh &>/dev/null
sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg
sed -i 's/# fqdn/fqdn/g' /etc/taos/taos.cfg
sed -i 's/hostname/localhost/g' /etc/taos/taos.cfg
}#PBox网关配置
PB(){
if [ ! -f "/usr/lib/libatomic.so.1.0.0" ];
then
cp -rf /pbox/FCloudComm/bin/libatomic.so.1.0.0 /usr/lib/
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so.1
ln -sf /usr/lib/libatomic.so.1.0.0 /usr/lib/libatomic.so
fised -i '1c #! /bin/bash' /etc/init.d/rc.local
cd /pbox/TDengine-server-2.0.10.0
./install.sh &>/dev/null
sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg
sed -i 's/# logDir/ logDir/g' /etc/taos/taos.cfg
sed -i 's/# dataDir/ dataDir/g' /etc/taos/taos.cfg
sed -i 's#/var/log/taos#/pbox/log#g' /etc/taos/taos.cfg
sed -i 's#/var/lib/taos#/pbox/lib#g' /etc/taos/taos.cfgsed -i '/run.sh/d' /etc/rc5.d/S99rmnologin.sh
sed -i '$a source /pbox/run.sh' /etc/rc5.d/S99rmnologin.sh
}power(){
source /mnt/FCloudComm/tools/setEnv.sh
if [ -d "/mnt/config" ];then
#echo "文件夹存在"if [ -f "/mnt/config/hardwareinfo.HID" ];then
#echo "文件存在"
cp -rf /mnt/config/hardwareinfo.HID /mnt/FCloudComm
else
#echo "文件不存在"
echo "配置完成 请放入HID 和 授权文件"
/mnt/FCloudComm/bin/getID
fiif [ -f "/mnt/config/"".lic" ];then
#echo "文件存在"
cp -rf /mnt/config/.lic /mnt/FCloudComm/bin
else
#echo "文件不存在"
echo "配置完成 请放入HID 和 授权文件"
/mnt/FCloudComm/bin/getID
fielse
#echo "文件夹不存在"
echo "配置完成 请放入HID 和 授权文件"
/mnt/FCloudComm/bin/getID
fi
#echo "配置完成 请放入HID 和 授权文件"
#/mnt/FCloudComm/bin/getID
}powerPBox(){
source /pbox/FCloudComm/tools/setEnv.sh
if [ -d "/pbox/config" ];then
#echo "文件夹存在"if [ -f "/pbox/config/hardwareinfo.HID" ];then
#echo "文件存在"
cp -rf /pbox/config/hardwareinfo.HID /pbox/FCloudComm
else
#echo "文件不存在"
echo "配置完成 请放入HID 和 授权文件"
/pbox/FCloudComm/bin/getID
fiif [ -f "/pbox/config/"".lic" ];then
#echo "文件存在"
cp -rf /pbox/config/.lic /pbox/FCloudComm/bin
else
#echo "文件不存在"
echo "配置完成 请放入HID 和 授权文件"
/pbox/FCloudComm/bin/getID
fielse
#echo "文件夹不存在"
echo "配置完成 请放入HID 和 授权文件"
/pbox/FCloudComm/bin/getID
fi
#echo "配置完成 请放入HID 和 授权文件"
#/pbox/FCloudComm/bin/getID
}case "$1" in
8401d)
cd /mnt/TDengine-server-2.0.10.0
./install.sh &>/dev/null
sed -i 's#/third/log#log#g' /etc/taos/taos.cfg
sed -i 's#/third/data#data#g' /etc/taos/taos.cfg
sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg
inspect
power
;;
8316)
i="0"
while read path
do
if [ "$path" == "127.0.0.1 GEA-8316-DLK" ];
then
i="1"
fi
done
if [ "$i" != "1" ];
then
sed -i '$a\127.0.0.1 GEA-8316-DLK' /etc/hosts
ficd /mnt/TDengine-server-2.0.10.0 ./install.sh &>/dev/null sed -i 's/firstEp/#firstEp/g' /etc/taos/taos.cfg inspect power ;;
ISG)
i="0"
while read path
do
if [ "$path" == "127.0.0.1 localhost" ];
then
i="1"
fi
done
if [ "$i" != "1" ];
then
echo "127.0.0.1 localhost"> /etc/hosts
fitd inspect power ;;
PBox)
i="0"
while read path
do
if [ "$path" == "127.0.0.1 imx6ull14x14evk" ];
then
i="1"
fi
done
if [ "$i" != "1" ];
then
echo "127.0.0.1 imx6ull14x14evk"> /etc/hosts
fi
PB
inspectPBox
powerPBox
;;
PBox16.04)
pkexec chown root:root /etc/sudoers /etc/sudoers.d -R
td
inspect
power
sed -i '/source/d' /etc/init.d/rc.local
sed -i '/source/d' /etc/rc.local
sed -i '/sleep 1/isource /mnt/run.sh' /etc/rc.local
;;
esac以下是Python重写的脚本,您可以在Python脚本中使用system命令来调用shell命令。
#!/usr/bin/env python3 import os argv = input("请输入要执行的命令:") # deploy = argv count = 0 filename = [] isTar = 1 if isTar == 1: path = os.path.abspath(os.path.dirname(__file__)) # print("the current path is:{}".format(path)) for i in os.listdir(path): if i.endswith('.tar.gz'): filename.append(i) count += 1 if count = count: print("索引错误") exit() else: if argv == "PBox": os.system("tar zxvf {} -C /pbox".format(filename[inNum])) else: os.system("tar zxvf {} -C /mnt".format(filename[inNum])) # print("解压部署包") # print(deploy) # os.system("tar -zxvf {}".format(deploy)) # print("解压部署包完成") def inspect(): if argv != "PBox16.04": os.system("cp -rf /mnt/profile /etc/") if not os.path.exists("/mnt/FCloudComm"): print("1") exit() if not os.path.exists("/mnt/run.sh"): print("2") exit() if not os.path.exists("/usr/lib/libiconv.so.2.6.1"): os.system("cp -rf /mnt/FCloudComm/bin/libiconv.so.2.6.1 /usr/lib/") os.system("ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so") os.system("ln -sf /usr/lib/libiconv.so.2.6.1 /usr/lib/libiconv.so.2") with open("/etc/init.d/rc.local", "r+") as f: lines = f.readlines() f.seek(0) f.truncate() for line in lines: