23

私は bash スクリプトとプログラムのテストについてたくさん読んできましたが、まだこのコードを機能させることができません。

north east south基本的には、ユーザーにまたはのいずれかを尋ねる単純なプログラムですwest。プログラムを起動すると、すぐに入力を求められます。bashスクリプトに入力を与えることができません。と を使っechoてみexpectました。

どんな助けでも大歓迎です。

プレイヤーの入力を取得するために使用される関数は次のとおりです。

int process_input(Map *game)
{
    printf("\n> ");

    char ch = getchar();
    char a = getchar(); //eat enter

    int damage = rand() % 4;

    switch(ch) {

        case -1:
            printf("you suck\n");
            return 0;
            break;
        case 'n':
            game->proto.move(game, NORTH);
            break;
        case 's':
            game->_(move)(game, SOUTH);
            break;
        case 'e':
            game->_(move)(game, EAST);
            break;
        case 'w':
            game->_(move)(game, WEST);
            break;
        case 'a':
            game->_(attack)(game, damage);
            break;
        case 'l':
                    printf("You can go:\n");
                    if(game->location->north) printf("NORTH\n");
                    if(game->location->south) printf("SOUTH\n");
                    if(game->location->east) printf("EAST\n");
                if(game->location->west) printf("WEST\n");
                    break;
        default:
            printf("Whats next?", ch);
        }
        return 1;
}

そして、ここにbashスクリプトの試みがあります:

   #!/bin/bash
    /Desktop/c
    ./ex17 echo 'w'
4

3 に答える 3