我需要管道一个被拆分成单个参数的字符串。例如,
cd foo | cat bar.txt
已被解析并存储到数组
中char *arr[];
arr = {"cd", "foo", "|", "cat", "bar.txt"}
我最初的想法是遍历数组,直到我看到管道并将命令存储到另一个数组然后运行它。还有另一种方法可以解决这个问题吗?
答案 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