You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

root用户检查脚本执行无任何反应,如何排查原因?

问题分析与解决

脚本逻辑说明

你的脚本逻辑本身是正确的:

#!/bin/sh
[ "$(id -u)" = 0 ] || exit 1
echo "Running"

当非root用户执行时,$(id -u)返回的不是0,会触发|| exit 1,脚本直接以状态码1退出,不会执行后续的echo "Running"。

为什么看起来“无任何反应”

因为脚本退出时没有输出任何提示信息,只是默默终止。你可以通过执行脚本后查看退出状态码来确认:

./your_script.sh
echo $?

如果输出是1,说明脚本确实按预期以exit 1退出了。

优化方案(可选)

如果需要让用户明确知道是因为非root身份导致脚本退出,可以在exit前添加提示:

#!/bin/sh
if [ "$(id -u)" != 0 ]; then
    echo "错误:必须以root用户身份执行此脚本" >&2
    exit 1
fi
echo "Running"

这里将错误信息输出到标准错误流(>&2),符合脚本输出规范,用户能直观看到失败原因。

内容的提问来源于stack exchange,提问作者9064505

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 04:50:27