隔离 Shell 脚本的标准输入范围

问题描述 投票:0回答:1

是否有机会隔离 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$'

这个例子是假的,只是为了演示总体思路

谢谢

pipe sh stdin
1个回答
0
投票
#!/bin/sh
exec 3>&0
echo "cat - 0<&3 | grep '.jpeg$'" | sh

删除无用的

cat

#!/bin/sh
exec 3>&0
echo "0<&3 grep '.jpeg$'" | sh
© www.soinside.com 2019 - 2024. All rights reserved.