bash – 从使用xargs执行的命令读入stdin
发布时间:2020-12-16 01:34:11 所属栏目:安全 来源:网络整理
导读:使用xargs做了一些我没想到的事情,尽管我觉得这有点道理.这不是我所做的,但这是一个应该显示发生了什么的例子. fn.sh #!/usr/bin/bashindex=1for arg in "$@"; do echo "Arg #$index = '$arg'"; let ++index; doneread -p "type something followed by enter
使用xargs做了一些我没想到的事情,尽管我觉得这有点道理.这不是我所做的,但这是一个应该显示发生了什么的例子.
fn.sh #!/usr/bin/bash index=1 for arg in "$@"; do echo "Arg #$index = '$arg'"; let ++index; done read -p "type something followed by enter: " a echo "You typed '$a'." 现在这是命令: echo boo hoo | xargs ./fn.sh 现在我想要的是fn.sh可以从stdin读取以允许用户交互,但是这已被xargs篡夺了.我想我可以从一个临时文件中读取xargs,但我想知道它是否可以使用一个未命名的文件.
我从未使用过cygwin,但通常我会这样做:
xargs -a <(echo boo hoo) ./fn.sh -a告诉xargs从文件中读取,<()语法(可能或不适用于cygwin)是进程替换,它有效地创建了一个命名对象(命名管道或启动/ dev / fd的路径) )可以读取,产生运行所附命令的结果. 这不像管道语法那么方便,因为您必须将数据源放在xargs命令的中间,但它在其他方面是等效的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |