c - 如何通过管道传输用户输入的字符串?

标签 c shell unix

我需要通过管道传输一个已拆分为各个参数的字符串。例如,

cd foo | cat bar.txt

已被解析并存储到数组中

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

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

最佳答案

你可以使用 awk :

str="cd foo | cat bar.txt"

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

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

评估 $command_first

评估 $command_second

关于c - 如何通过管道传输用户输入的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176144/

相关文章:

bash - pgrep -P,但对于孙子不仅仅是 child

javascript - 将 PHP Unix 时间戳转换为 Javascript 时间戳格式

unix - UDP 数据包中的数据是否可以在应用程序级别被认为是正确的?

c++ - 如何从外部分离 gdb session ?

c - 我需要将 Node 对象转换为 C 中的字符串

c - 尽管终止了客户端,write() 仍返回正确的字节数

unix - 在 Unix 中没有临时文件的粘贴

C 全局未调整大小的数组?

python - 使用 Python 执行多个 adb shell 命令

unix - 浏览unix "page up"命令页面时如何执行 "man"?