是否有机会隔离 shell 脚本的标准输入范围。例如。
script.sh
#!/bin/sh
echo "cat - | grep '.jpeg$'" | sh
这样
sh
将通过管道传输到 echo
(执行命令)标准输出,而 cat -
将被注入 script.sh
本身的标准输入
ls -la | ./script.sh
最后应该列出“*.jpeg”项目。
附注无论如何
script.sh
可以简化为
#!/bin/sh
cat - | grep '.jpeg$'
这个例子是假的,只是为了演示总体思路
谢谢
#!/bin/sh
exec 3>&0
echo "cat - 0<&3 | grep '.jpeg$'" | sh
删除无用的
cat
:
#!/bin/sh
exec 3>&0
echo "0<&3 grep '.jpeg$'" | sh