求个懂shell脚本的大佬给看看变量 传递参数给程序会....

查看 43|回复 1
作者:Nansan   
[ol]#!/bin/bash
config_file="/mnt/share/config.ini"
# 检查是否有命令行参数
if [[ $# -ne 1 ]]; then
        echo "Usage: $0 "
        exit 1
fi
# 读取命令行参数
section_number=$1
current_section=0
while IFS= read -r line; do
        # 检测是否为新的网络段落
        if [[ $line =~ ^\[Network ]]; then
                ((current_section++))
                if [[ $current_section -eq $section_number ]]; then
                        read_network_info=true
                else
                        read_network_info=false
                fi
        fi
        if $read_network_info; then
                if [[ $line =~ ^Network\ Adapter= ]]; then
                        network_adapter=${line#*=}
                elif [[ $line =~ ^IP-Cidr= ]]; then
                        ip_cidr=${line#*=}
                elif [[ $line =~ ^IP\ Address= ]]; then
                        ip_address=${line#*=}
                elif [[ $line =~ ^Mask= ]]; then
                        mask=${line#*=}
                elif [[ $line =~ ^Gateway= ]]; then
                        gateway=${line#*=}
                elif [[ $line =~ ^Nezha_secret= ]]; then
                        nezha_secret=${line#*=}
                elif [[ $line =~ ^ddns_domain= ]]; then
                        ddns_domain=${line#*=}
                        # 获取所有需要的信息后跳出循环
                        break
                fi
        fi
done "$NETWORK_CONFIG" /dev/null; then
                        echo "网络连接成功,执行下一步。"
                        connected=true
                        break
                else
                        echo "网络连接失败,正在重试...(尝试次数:$((attempt + 1)))"
                        ((attempt++))
                        sleep 5 # 等待5秒后重试
                fi
        done
        if $connected; then
                # 网络连接成功,执行下一步
                # 启动指定服务
                # 列出所有名为nezha-agent的screen会话,并提取其会话ID
                screen -ls | grep 'nezha-agent' | cut -d. -f1 | awk '{print $1}' | while read session_id; do
                        # 结束每一个会话
                        screen -S "$session_id" -X quit
                done
                echo "所有名为nezha-agent的screen会话已结束。"
                screen -S nezha-agent -d -m /opt/nezha/agent/nezha-agent -s api.baidu.com:443 -p $nezha_secret --tls --debug --disable-auto-update
                echo "/mnt/share/nezha1.sh" $nezha_secret
        else
                echo "网络不可用,即将关机。"
        fi
else
        echo "The specified section number does not exist."
fi
[/ol]复制代码
screen -S nezha-agent -d -m /opt/nezha/agent/nezha-agent -s api.baidu.com:443 -p $nezha_secret --tls --debug --disable-auto-update
不知道怎么回事  执行到这里 参数就传递不全
手动运行是没问题的  

参数, 网络, 下一步

Typeboom   
改成这样试试:
[ol]screen -dmS nezha-agent
screen -S nezha-agent -X stuff  "/opt/nezha/agent/nezha-agent -s api.baidu.com:443 -p $nezha_secret --tls --debug --disable-auto-update$(printf '\r')"
[/ol]复制代码
您需要登录后才可以回帖 登录 | 立即注册

返回顶部