プログラムの入力としてパイプ出力

1257 ワード

今日フォーラムで端末の代わりにshellで入力するという質問がありましたが、この方法はインタラクティブに少し異曲同工の役割を果たしていることがわかりました.メモして、後で使います.
1.入力が必要なプログラムを書く
#include<stdlib.h>
#include<stdio.h>
int main()
{
  printf("input the string:");
  char temp[20];
  gets(temp);
  printf("%s
",temp); return 0; }
Cで書き終わったら、新しいファイルをsimpleとしてコンパイルします.
または
#!/usr/bin/env python

a = raw_input('input the string :')
print a

入力に対応するプログラムを接続します.
#!/bin/bash

parm="ls -al"
result=`echo "$parm" | python py1.py`
echo $result
または
#!/bin/bash

parm="ls -al"
result=`echo "$parm" | simple`
echo $result

実行結果:
sh -x auto_input.sh 
+ parm=ls -al
+ echo ls -al
+ python py1.py
+ result=input the string :ls -al
+ echo input the string :ls -al
input the string :ls -al
~$ sh -x auto_input.sh 
+ parm=ls -al
+ echo ls -al
+ ./simple
+ result=input the string:ls -al
+ echo input the string:ls -al
input the string:ls -al

以上の結果から、変数parmの値がプログラムの入力として実現され、人工入力を免除するステップが実現されたが、後続のステップがどのようにレンガを追加するかは、より多くの試みが必要であることがわかる.