我对Unix和Linux还不熟悉。我正在尝试一个例子,从一本书“系统编程与C和Unix”,由亚当胡佛,第159-162页。我用的是Linux Ubuntu。
我想输入两个C代码(summer | bingo)。
夏令营

#include<stdio.h>
void main()
{
   int x,s;
   s =0 ;
   while(1)
   {
      printf("#?");
      scanf("%d",&x);
      if (x == 0)
        break;
      s = s +x;
     printf("sum = %d\n",s);
   }
}

答对 了
#include<stdio.h>
#include<string.h>
void main()
{
   char s[80];
   while(1)
   {
      scanf("%s",s);
      if ( strcmp(s,"sum=5") == 0 )
      {
          printf("Bingo!\n");
      }
      else if( strcmp(s,"sum=12") == 0)
      {
          break;
      }
   }
}

在Linux终端中,我遵循命令。
gcc-o夏季.c
gcc-o宾果宾果c
夏季|宾果
我做不到,它会出错。
“程序'summer'当前未安装。
您可以键入以下命令来安装:
sudo apt安装chiark utils bin
没有找到“bingo”命令,你是说:
命令“bing”来自包“bing”(universe)
“bino”包中的命令“bino”(universe)
宾果:未找到命令“
summer和bingo文件正在使用./summer和./bingo工作
但是,/夏天|宾果不起作用。
我试图使用“”标准输出。
这些做得很好。但是“|”给出了一个错误。
任何帮助对于学习UNIX都非常有用。

最佳答案

选项1:显式指定两个命令的路径

./summer | ./bingo

选项2:将当前路径添加到路径中,以便找到它们。在bash上,您可以执行
export PATH="$PATH:$(pwd)"
summer | bingo

请注意,向路径中添加“.”并不是最安全的操作,而是实际指定包含summerbingo的路径,或者使用pwd显式添加当前文件夹。

关于linux - Unix中的管道。实现示例时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49721842/

10-15 09:30