You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash中while read结合<<<$(命令)的写法是否正确?

关于该Bash写法的正确性说明

这种写法是完全正确的,它用到了Bash里的**Here字符串(Here String)**特性,<<<就是Here字符串的语法标记。

具体来说,<<<$(find /usr/lib -type d)会先执行find /usr/lib -type d命令,把输出结果作为输入传递给前面的while read循环,循环会逐行读取这些目录路径并处理(这里是打印出来)。

和常见的管道写法find /usr/lib -type d | while read -r dir相比,这种Here字符串的写法有个关键优势:它不会创建子shell,所以如果在循环里修改全局变量,改动会保留在当前shell环境中,而管道写法因为子shell的存在,全局变量的修改不会影响父shell。

虽然《Bash高级指南》里没收录这个写法,但它是Bash的标准特性,从Bash 2.05b版本开始就已经支持了。

内容的提问来源于stack exchange,提问作者learning-man

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:28:10