如何管道用户输入的字符串?

时间:2015-03-20 21:32:53

标签: c shell unix

我需要管道一个被拆分成单个参数的字符串。例如,

cd foo | cat bar.txt

已被解析并存储到数组

char *arr[];
arr = {"cd", "foo", "|", "cat", "bar.txt"}

我最初的想法是遍历数组,直到我看到管道并将命令存储到另一个数组然后运行它。还有另一种方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

Yon可以使用awk:

str =" cd foo | cat bar.txt"

command_first = echo $str | awk -F "|" '{print $1}'

command_second = echo $str | awk -F "|" '{print $2}'

eval $ command_first

eval $ command_second