在Bash中使用的<<<和<<()是什么?

gin*_*ino 2 bash while-loop

我正在学习bash,但我无法理解这个示例代码:

while IFS= read -r line2; 
    do
        if [[ "$line1" == "$line2" ]]
        then
            (( i++ ))
        fi
    done <<< "$lines"
Run Code Online (Sandbox Code Playgroud)

特别是行done <<< "$lines"什么意思<<<

我找到了其他例子,例如:

while read line
  do
      echo "Word count per line: $line"
  done < <(cat list.txt | wc -w)
Run Code Online (Sandbox Code Playgroud)

在这种情况下因为它使用< <而不是<<<

And*_*ini 5

<<<指定一个here字符串.

在您的情况下,内容$lines被发送到while循环的标准输入.


<(...)是一种过程替代.

在您的情况下,输出cat list.txt | wc -w被发送到while循环的标准输入.

当程序期望文件名作为参数时,进程替换非常有用.

  • 不完全等同:`cat file | ...`将打开一个子shell,这样你在`while`循环中设置的变量在完成后就会丢失. (3认同)