Запретить подстановку команд оболочки

Есть ли способ предотвратить подстановку команд в сценарии оболочки?

Например, если скрипт содержит строку вроде:

var=`echo foo`

Я хотел бы получить способ "echo foo". Не просто замена команды, которая является foo.

Изменить: я пытаюсь сохранить эти команды для последующей оценки. Плюс я не могу редактировать скрипт вручную; Мне нужны эти значения в программе на C/C++, и таким образом мне придется каким-то образом анализировать скрипт, что убивает цель (это именно то, чего я хочу избежать: синтаксический анализ скрипта).

Редактирование #2: Полная ситуация объяснена здесь: есть этот сценарий оболочки, который содержит несколько переменных, таких как:

foo="bar"
baz=`some_command`

и т. д. Я хочу, чтобы каждая переменная хранила правую часть выражения (то есть "bar" и "some_command"). Я должен сделать это из программы на C/C++, поэтому я не могу вручную редактировать скрипт (например, чтобы добавить одинарные кавычки).

1 ответ

Вы должны поместить свою строку в одинарные кавычки.

var='`echo foo`'
Другие вопросы по тегам