bash - Shell 脚本:-ne 的意外运算符
问题描述
我有一个 shell 脚本,我想检查它是否由 root 运行。如果不是,那么我将变量设置SUDO='sudo'
为附加到后续命令。这样,用户会从 shell 获得一个很好的权限被拒绝错误消息,如果他们使用 sudo 运行,它会正确地完成它的业务。但是,对于以下代码,我得到:
myscript.sh: [: -ne: unexpected operator
代码是:
#!/bin/sh
SUDO=""
if [ $EUID -ne 0 ]; then
SUDO='sudo'
fi
我正在运行它:sh myscript.sh
因为这不是 bash 脚本。这不是 sh vs bash afaik 的问题。shebang 说/bin/sh
,我正在运行它sh
。
解决方案
推荐阅读
- angular - Angular bypassSecurityTrustResourceUrl 说任何参数都是未定义的
- javascript - Chrome 扩展程序 - 优先消息
- c++ - 调用已删除的构造函数
- ruby-on-rails - 如何使用 webpacker 在 Rails 中导入 **/* glob scss
- javascript - 在维护 serviceB 模块上下文的同时从 serviceB 调用 serviceA
- c# - 在 C# 中检索图像或文档中文本的像素位置
- asp.net-core - 使用 [HtmlAttributeName("for")] 的 ModelExpression 上的自定义 TagHelper 没有 Intelisense
- angular - Angular 7:使用 Typescript 界面进行解构,出现错误
- java - 在java中的特定时间间隔内每次生成一个随机数
- angularjs - 在 Node.js 中重建分块文件