如果使用sudo调用,则变量赋值失败

时间:2011-10-25 04:42:24

标签: shell unix terminal

我必须从C ++命令行应用程序中执行m=7之类的赋值。当我使用sudo MyApp运行此应用程序时,程序中存在的命令无法执行。

sudo m=7

因以下错误而失败

Command Not Found 的。

有没有办法让我可以为命令中存在sudo关键字的变量赋值? 基本上我想要一种方法来做sudo {Assignment},即sudo m=3。感谢。

1 个答案:

答案 0 :(得分:0)

sudo命令允许用户作为给定用户运行外部命令(默认值:root)。 m=7不是外部命令,因此不能由sudo运行。它是一个变量赋值语句,由当前shell直接解释和执行。

Command not found消息表明sudo找不到名为m = 7的可执行命令。

事实上,很难想象运行sudo m=7的预期目标是什么。如果要将7分配给shell变量m,则不需要任何特殊权限或sudo,只需运行m=7即可。如果要打开root shell并执行一些命令,那么从m=7开始,只需从sudo bash开始,然后发出m=7语句。