今天看到论坛上有人提问通过shell代替终端输入,发现这种方法和交互式有一点异曲同工的作用,记下来,以后使用。
1.写一个需要有输入的程序
#include<stdlib.h> #include<stdio.h> int main() { printf("input the string:"); char temp[20]; gets(temp); printf("%s\n",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中的值作为了程序的输入,实现了免去人工输入的步骤,不过后续步骤如何进行添砖加瓦,还要更多尝试;