У меня есть сценарий оболочки в C, который определяется какИспользование переменных для сценария оболочки в C
#define SHELLSCRIPT "\
sed 's/./& \
inserted text \
/20' fileA.txt > fileB.txt \
"
Когда этот сценарий оболочки выполняется на терминале, он вставляет текст inserted text
в fileB.txt со смещением 20. Теперь, я хочу, чтобы 20
fileA.txt
и fileB.txt
были выбраны из переменной.
Как мне это сделать? Я попытался следующие
#define SHELLSCRIPT "\
sed 's/./& \
inserted text \
/$i' fileA.txt > fileB.txt \
"
и в C перед запуском выше скрипт, я бегу system("i=20");
, но затем я получаю эту ошибку ниже
sed: 1: "s/./& this comment has ...": bad flag in substitute command: '$'
Как я могу добиться этого?
Не ясно. Если вы хотите иметь переменные поля, вы должны составить строку в своем коде. Как вы получаете идею 'sed' или оболочка вообще имеет доступ к внутреннему состоянию вашей программы? – Olaf