Запретить подстановку команд оболочки
Есть ли способ предотвратить подстановку команд в сценарии оболочки?
Например, если скрипт содержит строку вроде:
var=`echo foo`
Я хотел бы получить способ "echo foo". Не просто замена команды, которая является foo.
Изменить: я пытаюсь сохранить эти команды для последующей оценки. Плюс я не могу редактировать скрипт вручную; Мне нужны эти значения в программе на C/C++, и таким образом мне придется каким-то образом анализировать скрипт, что убивает цель (это именно то, чего я хочу избежать: синтаксический анализ скрипта).
Редактирование #2: Полная ситуация объяснена здесь: есть этот сценарий оболочки, который содержит несколько переменных, таких как:
foo="bar"
baz=`some_command`
и т. д. Я хочу, чтобы каждая переменная хранила правую часть выражения (то есть "bar" и "some_command"). Я должен сделать это из программы на C/C++, поэтому я не могу вручную редактировать скрипт (например, чтобы добавить одинарные кавычки).
1 ответ
Вы должны поместить свою строку в одинарные кавычки.
var='`echo foo`'