写一段shell脚本,要求: 1.脚本可通过外部传参的方式实现两个功能函数。 2.传入参数"pack",实现:拷贝"/opt/LinkRay/Resource/DataBase"目录下的"AssayDB.db"文件,并使用tar命令将其打包成"AssayDB.tar.gz"压缩包,最后拷贝这个压缩包到"/opt/LinkRay/IOTDevice/dbFile"目录下。 3.传入参数"unpack",实现:使用tar命令解压"/opt/LinkRay/IOTDevice/dbFile"目录下的"AssayDB.tar.gz"压缩包,并将解压后的文件拷贝至"/opt/LinkRay/Resource/DataBase"目录下。
时间: 2023-07-08 08:47:57 浏览: 91
好的,以下是您需要的shell脚本,记得将文件保存为.sh格式并添加可执行权限(chmod +x filename.sh)。
```bash
#!/bin/bash
# 判断传入参数个数
if [ $# -ne 1 ]; then
echo "Usage: $0 <pack/unpack>"
exit 1
fi
# 定义函数:压缩AssayDB.db并拷贝至指定目录
function pack_assaydb {
if [ ! -f /opt/LinkRay/Resource/DataBase/AssayDB.db ]; then
echo "AssayDB.db not found!"
exit 1
fi
cd /opt/LinkRay/Resource/DataBase
tar czvf AssayDB.tar.gz AssayDB.db
mv AssayDB.tar.gz /opt/LinkRay/IOTDevice/dbFile
}
# 定义函数:解压AssayDB.tar.gz并拷贝至指定目录
function unpack_assaydb {
if [ ! -f /opt/LinkRay/IOTDevice/dbFile/AssayDB.tar.gz ]; then
echo "AssayDB.tar.gz not found!"
exit 1
fi
cd /opt/LinkRay/Resource/DataBase
tar xzvf /opt/LinkRay/IOTDevice/dbFile/AssayDB.tar.gz
}
# 判断传入参数,执行相应函数
if [ $1 == "pack" ]; then
pack_assaydb
elif [ $1 == "unpack" ]; then
unpack_assaydb
else
echo "Usage: $0 <pack/unpack>"
exit 1
fi
echo "Done!"
```
使用方法:
1.压缩AssayDB.db并拷贝至指定目录
```bash
./filename.sh pack
```
2.解压AssayDB.tar.gz并拷贝至指定目录
```bash
./filename.sh unpack
```
阅读全文