2016-06-10 4 views
0

Я хотел бы создать сценарий ожидания, который может ответить на вопрос, используя функцию srand functuon.Expect script on linux

Например, Я буду использовать netcat для подключения к серверу, и я получу вопрос с сервера как «пожалуйста, введите 0 или 1»; , тогда я надеюсь, что мой скрипт сможет ответить на вопрос автоматически, используя код, как указано выше.

#include <stdio.h> 
    #include <string.h> 
    #include <stdlib.h> 
    #include <time.h> 

    void main(){ 
    int num; 
    srand(time(NULL)); 
    num=(rand()%2); 
    printf("%d\n",num);} 

Если вы можете предоставить мне образец, это будет очень полезно. спасибо.

ответ

0

Вы хотите запустить netcat, распознать этот текст, а затем вернуть случайное значение в (0,1), да?

#!/usr/bin/env expect 
expr {srand([clock seconds])} ;# initialize RNG 
spawn netcat 127.0.0.1 
expect "please enter 0 or 1" 
send "[expr {int(rand() * 2)}]\r" 
expect eof 

См документация: http://tcl.tk/man/tcl8.6/TclCmd/expr.htm и http://tcl.tk/man/tcl8.6/TclCmd/mathfunc.htm

команда на Tcl expr получает некоторую зенитную артиллерию для того, чтобы быть автономной мини-языком в Tcl. Синтаксис может быть ... очищен несколько.

#!/usr/bin/env expect 
namespace import ::tcl::mathfunc::* 
namespace import ::tcl::mathop::\* 
srand [clock seconds] ;# initialize RNG 
spawn netcat 127.0.0.1 
expect "please enter 0 or 1" 
send "[int [* 2 [rand]]]\r" 
expect eof 
+0

Здравствуйте, спасибо за ваш ответ. Я использую ваш пример кода, это работа! Если я хочу использовать SRANDmethod, возможно ли это? – esllin