ターミナルスローCプログラムにいくつかのコマンドを渡し、その後にその入力を取得する必要があります。 その一部として、Expectスクリプトを配置する必要がある行があります。私は実行する必要がCでエスケープしているキャラクタ
FILE *command = popen("script here","r");
スクリプトは次のとおりです。
expect -c 'spawn ssh [email protected] cat /proc/stat
expect {
-re ".*yes/no.*" {
send "yes\r"
exp_continue
}
"password:" {
send -- "password\r"
}
}
interact'
だから、私はスクリプトはそれを動作させる必要があるとして働いていたので、いくつかの文字をエスケープする必要があります。 私はエスケープの異なるシーケンスを試みましたが、それらのすべてが正しくありません。
ご協力いただきありがとうございます。
UPD:( ' "プログラムの浮遊、\ '" など "` *前構文エラー"')コンパイル中に、私はエラーを取得するエスケープせず
。 私はその問題が新しい行によって引き起こされたと思っていますが、単純に1行に書くだけではスクリプトは機能しません。私は\ nを使ってみましたが、これは私を助けませんでした。
だから、私は単にそれが最初
なぜこのスクリプトの内容を正確にエスケープする必要がありますか?エスケープは、外部ファイルからデータを読み込むときではなく、文字列または文字リテラルをCソースノードに書き込むときにのみ必要です。 – templatetypedef
試したエスケープ・シーケンスとその結果は何ですか? –
エスケープしないと、コンパイル中にエラーが出ます( "* ''、" stray '\' in program "など)。私はその問題は新しい行に起因すると思うが、スクリプトを1行に書くだけではうまくいきません。私は\ nを使ってみましたが、これは私を助けませんでした。 私は単純にスクリプトをCファイルにコピー&ペーストすることはできません。何らかの処理が必要です – George