📌  相关文章
📜  bash 在变量中存储管道输出 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:29:35.145000             🧑  作者: Mango

Bash 在变量中存储管道输出

有时候我们需要将管道输出的值存储在一个变量中,以便后续操作。在 Bash 中,有几种方式可以实现这个功能。

使用反引号命令替换
my_var=`ls | awk '{print $1}'`
echo $my_var

这个命令将将 ls 命令的输出作为管道输入,awk '{print $1}' 命令将返回第一列的输出。反引号将整个命令替换为输出的值,并将其存储在 my_var 变量中。

使用 $() 命令替换
my_var=$(ls | awk '{print $1}')
echo $my_var

这种方式与使用反引号的方式类似,但被认为是一个更加简单和可读的方法,并且面向未来的方式。

使用管道和 read 命令
ls | awk '{print $1}' | while read line; do
  my_var=$line
done
echo $my_var

这种方式使用管道和 read 命令来逐行读取输出,并将其存储在 my_var 变量中。注意,由于 Bash 中的管道操作都在子 shell 中运行,所以不能在相同的 shell 中直接使用变量。

无论使用哪种方式,我们都可以通过将命令输出存储在变量中来轻松地访问和操作输出。