2011-10-25 54 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語句。

相關問題