Мне нужно передать некоторые команды программе терминала throw C и получить ее после этого. Как часть этого, у меня есть строка, где должен быть установлен сценарий Expect.Устранение символов в C
FILE *command = popen("script here","r");
Script Мне нужно выполнить это:
expect -c 'spawn ssh [email protected] cat /proc/stat
expect {
-re ".*yes/no.*" {
send "yes\r"
exp_continue
}
"password:" {
send -- "password\r"
}
}
interact'
Итак, мне нужно бежать несколько символов так скрипт работал, как это нужно работать. Я пробовал разные последовательности экранирования, но все они не правы.
И спасибо вам за внимание.
UPD:
Без побега я получаю сообщение об ошибке при компиляции («ошибка синтаксиса перед '*'», „бродячих„\“в программе“ и другие). Я думаю, что проблема вызвана новыми строками, но скрипт не работает, если я просто напишу его в одной строке. Я пытался использовать \ n, но это мне не помогло.
Таким образом, я не могу просто скопировать и вставить скрипт в файл C, то необходимо некоторой обработке
Почему именно вам нужно избегать содержимого этого скрипта? Экранирование необходимо только при написании строковых или символьных литералов в исходный узел C, а не при чтении данных из внешних файлов. – templatetypedef
Какие escape-последовательности вы пробовали, и каков был результат? –
Без экранирования я получаю ошибку при компиляции («синтаксическая ошибка перед« * »,« блуждающая »в программе» и другие). Я думаю, что проблема связана с новыми строками, но скрипт не работает, если я просто пишу его в одной строке. Я пытался использовать \ n, но это мне не помогло. Итак, я не могу просто скопировать и вставить скрипт в файл C, ему нужна некоторая обработка – George