📅  最后修改于: 2023-12-03 15:29:35.145000             🧑  作者: Mango
有时候我们需要将管道输出的值存储在一个变量中,以便后续操作。在 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
这种方式与使用反引号的方式类似,但被认为是一个更加简单和可读的方法,并且面向未来的方式。
ls | awk '{print $1}' | while read line; do
my_var=$line
done
echo $my_var
这种方式使用管道和 read 命令来逐行读取输出,并将其存储在 my_var
变量中。注意,由于 Bash 中的管道操作都在子 shell 中运行,所以不能在相同的 shell 中直接使用变量。
无论使用哪种方式,我们都可以通过将命令输出存储在变量中来轻松地访问和操作输出。