2011-10-25 26 views
0

我必须从C++命令行应用程序执行像m=7这样的赋值。当我使用sudo MyApp运行此应用程序时,程序中存在的命令无法执行。如果使用sudo调用变量赋值失败

sudo m=7 

失败,出现以下错误

Command Not Found

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

+2

我甚至无法想象你想要完成什么。 –

+0

在我的C++程序中,我必须从终端运行一些命令。因此,上述分配就是其中之一。但是,当我使用sudo MyApp运行该应用程序时,sudo关键字被追加到我在程序中运行的所有命令中。那是分配操作失败的时候。 –

+2

我的大脑在流血...... –

回答

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语句。

相关问题