gpt4 book ai didi

bash - 流水线 |在 bash 用法中?

转载 作者:行者123 更新时间:2023-11-29 09:27:04 27 4
gpt4 key购买 nike

我正在学习 BASH,我的问题如下。

我正在使用 tar -zxvf 解压缩一个文件,这会返回一个(我认为)是一个列表类型 ls -l 从它被提取的文件夹.我想要做的是使用 head -1 获取它的第一个对象。

我可以做到这一点,但为了保持我的代码干净,我想使用管道来做到这一点。

这个有效:

filename_2=$(tar zxvf ${filename}) 
echo "${filename_2}" | head -1

这不是(它返回一个空字符串):

filename_2=$(tar zxvf ${filename}) | head -1
echo "${filename_2}"

我对管道概念的理解有误吗?我认为它只是将最后一个函数的输入作为最后一个函数的输入,如果是这样,为什么我需要分两行进行?

谢谢

最佳答案

您根本不需要变量。将 tar 的输出直接传递给 head

tar zxvf "$filename" | head -1

如果您随后想将该结果保存在您要编写的变量中:

filename_2=$(tar zxvf "$filename" | head -1)
echo "$filename_2"

关于bash - 流水线 |在 bash 用法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53655708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com