因为某些原因需要使用Shell脚本进行批量安装软件,在脚本中使用下面的命令获取root权限
# 获取 root 权限
if [[ "$EUID" -ne 0 ]]; then
echo "请输入开机密码获取 root 权限..."
sudo bash "$0" "$@"
exit $?
fi
银河麒麟V10 SP1 2303版本使用一切正常,直到某天遇到了一台2403的系统,发现在执行脚本后会报错,提示“sed: 无法移除 /etc/sedu0NzgE:权限不够”,因为路径位于/etc且sed会创建一个临时文件然后替换原文件,所以很明显是权限问题,但问题是同样的脚本在2303中正常,在2403中却不行,所以想请教各位大佬有没有办法解决这个问题
补充一下:手动打开终端,将脚本中的sed命令行单独复制出来,加上sudo后执行是正常的
再补充一下:将这台2403的电脑接入外网,手动打开终端,执行sudo apt install --only-upgrade kylin-connectivity(kylin-connectivity在应用商店中叫“多端协同”,直接在应用商店更新也能达到相同效果),再执行之前的脚本,又恢复正常了,但这不是我想要的解决方法 ![]()