繁体   English   中英

通过管道读取命令行参数到sh

[英]reading command line arguments through pipe to sh

我正在通过将其管道传递给sh运行shell脚本。 例如:

curl commands.io/count-duplicate-lines-in-a-file | sh

我能弄清楚如何传递文件名的唯一方法是使用:

read file </dev/tty

您可以在此处签出脚本: 计算文件中的重复行

有没有其他方法可以将文件名作为参数传递给脚本,而无需先将其保存到本地文件,设置权限并运行它?

这个想法是,您可以使用Monitor捕获终端输入/输出,然后使用传递给sh curl从命令行重新运行它。

使用-s选项:

echo 'echo "$@"' | sh -s 1 2 3 4

输出:

1 2 3 4

另一种方法是在shell支持的情况下使用进程替换:

bash <(echo 'echo "$@"') 1 2 3 4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM