将命令输出重定向到变量(bash 脚本)

use*_*382 5 linux ubuntu shell-script

如果有人能解释一下,当我在脚本中包含这一行时,我会收到此错误

find -name "$name" | wc -l >> $num 
Run Code Online (Sandbox Code Playgroud)

错误消息 $num: ambiguous redirect ?

ste*_*ver 10

语法

find -name "$name" | wc -l >> $num 
Run Code Online (Sandbox Code Playgroud)

尝试将管道的输出重定向到名称包含在变量中的文件 $num。错误很可能是因为$num是空的,留下了一个悬空的重定向操作符>>

您不能将命令输出重定向到bash; 中的变量。但是,您可以使用命令替换将命令的输出分配给变量

num=$(find -name "$name" | wc -l)
Run Code Online (Sandbox Code Playgroud)

请注意,计算输出的行数find并不是评估匹配文件数量的可靠方法。