Присваивание переменной не выполняется, если вызывается с помощью sudo - PullRequest
0 голосов
/ 25 октября 2011

Мне нужно сделать присвоение, подобное m=7, из приложения командной строки C ++.Когда я запускаю это приложение, используя sudo MyApp, команда, присутствующая в программе, не выполняется.

sudo m=7

завершается ошибкой со следующей ошибкой

Command Not Found.

Есть ли способ назначить значение переменной с помощью ключевого слова sudo, присутствующего в команде?В основном я хочу способ сделать sudo {Assignment} то есть sudo m=3.Благодаря.

1 Ответ

0 голосов
/ 04 ноября 2011

Команда sudo позволяет запустить внешнюю команду от имени данного пользователя (по умолчанию: root).m=7 не является внешней командой и, следовательно, не может быть запущено sudo.Это оператор присваивания переменной, который непосредственно интерпретируется и выполняется текущей оболочкой.

Сообщение Command not found указывает, что sudo не удалось найти исполняемую команду с именем m = 7.

ФактическиТрудно представить, какой может быть цель запуска sudo m=7.Если вы хотите присвоить 7 переменной оболочки m, вам не нужны никакие специальные привилегии или sudo для этого, просто запустите m=7.Если вы хотите открыть корневую оболочку и выполнить там некоторые команды, начиная с m=7, просто начните с sudo bash, а затем выполните оператор m=7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...