diff --git a/script/clashctl.sh b/script/clashctl.sh index 94fb8af..5a4bf5d 100644 --- a/script/clashctl.sh +++ b/script/clashctl.sh @@ -22,8 +22,10 @@ function clashon() { export NO_PROXY=$no_proxy } -systemctl is-active "$BIN_KERNEL_NAME" >&/dev/null && [ -z "$http_proxy" ] && { - _is_root || _failcat '未检测到代理变量,可执行 clashon 开启代理环境' && clashon +watch_proxy() { + systemctl is-active "$BIN_KERNEL_NAME" >&/dev/null && [ -z "$http_proxy" ] && { + _is_root || _failcat '未检测到代理变量,可执行 clashon 开启代理环境' && clashon + } } function clashoff() { diff --git a/script/common.sh b/script/common.sh index f8bf2e5..5742b4d 100644 --- a/script/common.sh +++ b/script/common.sh @@ -84,7 +84,7 @@ _set_rc() { } [ -f "$SHELL_RC" ] && [ -n "$(tail -n 1 "$SHELL_RC")" ] && echo >>"$SHELL_RC" - echo "source $CLASH_SCRIPT_DIR/common.sh && source $CLASH_SCRIPT_DIR/clashctl.sh" | + echo "source $CLASH_SCRIPT_DIR/common.sh && source $CLASH_SCRIPT_DIR/clashctl.sh && watch_proxy" | tee -a "$SHELL_RC" >&/dev/null } @@ -214,11 +214,12 @@ function _valid_env() { function _valid_config() { [ -e "$1" ] && [ "$(wc -l <"$1")" -gt 1 ] && { - local msg is_valid - msg=$($BIN_KERNEL -d "$(dirname "$1")" -f "$1" -t) - is_valid=$? - echo "$msg" | grep -qs "unsupport proxy type" && _error_quit "不支持的代理协议,请安装 mihomo 内核" - return $is_valid + local cmd msg + cmd="$BIN_KERNEL -d $(dirname "$1") -f $1 -t" + msg=$(eval "$cmd") || { + eval "$cmd" + echo "$msg" | grep -qs "unsupport proxy type" && _error_quit "不支持的代理协议,请安装 mihomo 内核" + } } }