init
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
red(){
|
||||
echo -e "\033[31m$1\033[0m"
|
||||
}
|
||||
|
||||
green(){
|
||||
echo -e "\033[32m$1\033[0m"
|
||||
}
|
||||
|
||||
|
||||
# 获取系统包管理器
|
||||
get_package_manager(){
|
||||
if command -v apt-get &> /dev/null; then
|
||||
echo "apt-get"
|
||||
elif command -v yum &> /dev/null; then
|
||||
echo "yum"
|
||||
else
|
||||
echo "未知的系统包管理器"
|
||||
return 1 # 返回错误状态码
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查 jq 是否已安装
|
||||
check_jq() {
|
||||
if command -v jq >/dev/null 2>&1; then
|
||||
return 0
|
||||
else
|
||||
echo "jq 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查 Docker 是否已安装
|
||||
check_docker() {
|
||||
if command -v docker >/dev/null 2>&1; then
|
||||
return 0
|
||||
else
|
||||
echo "Docker 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查 docker-compose 是否已安装
|
||||
check_docker_compose() {
|
||||
if command -v docker-compose >/dev/null 2>&1; then
|
||||
return 0
|
||||
elif docker compose version >/dev/null 2>&1; then ## Docker 内置 compose 已安装
|
||||
return 0
|
||||
else
|
||||
echo "docker-compose 未安装"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装jq
|
||||
install_jq(){
|
||||
local package_manager=$(get_package_manager) # 获取包管理器
|
||||
if [[ -z "$package_manager" ]]; then
|
||||
echo "无法识别系统包管理器"
|
||||
return 1 # 无法识别包管理器
|
||||
fi
|
||||
|
||||
if [[ "$package_manager" == "apt-get" ]]; then
|
||||
sudo apt-get install -y jq
|
||||
elif [[ "$package_manager" == "yum" ]]; then
|
||||
sudo yum install -y jq
|
||||
else
|
||||
echo "未知的系统包管理器"
|
||||
return 1 # 未知的包管理器
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装docker
|
||||
install_docker(){
|
||||
echo 安装docker...
|
||||
curl -fsSL https://get.docker.com | bash -s docker
|
||||
}
|
||||
|
||||
# 安装docker-compose
|
||||
install_docker_compose(){
|
||||
echo 安装docker-compose...
|
||||
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 修改json文件的属性值
|
||||
# 案例1:modify_json_file "/foo/bar.json" "person.name" "张三"
|
||||
# 案例2:modify_json_file "/foo/bar.json" "servers" '["a.com", "b.com"]'
|
||||
# 该函数能自动处理不同数据类型,包括数组、对象和数字等。
|
||||
function modify_json_file() {
|
||||
local json_file=$1 # json文件路径
|
||||
local key=$2 # 要修改的key
|
||||
local value=$3 # 要修改的value
|
||||
|
||||
#如果key的值是.开头, 则去掉.号
|
||||
if [[ ${key} == "."* ]]; then
|
||||
key=${key:1}
|
||||
fi
|
||||
|
||||
# 检查值是否为有效的 JSON 格式(如数组、对象或数字)。
|
||||
# 如果是,则直接将值传递给 jq,无需引号。
|
||||
if echo "${value}" | jq . >/dev/null 2>&1; then
|
||||
jq ".${key} = ${value}" "${json_file}" > "${json_file}.tmp"
|
||||
else
|
||||
# 否则,将值视为字符串,并添加引号。
|
||||
jq ".${key} = \"${value}\"" "${json_file}" > "${json_file}.tmp"
|
||||
fi
|
||||
|
||||
mv ${json_file}.tmp ${json_file}
|
||||
}
|
||||
Reference in New Issue
Block a user