我正在编写一个shell脚本,它将打印最大的5个Bitbucket存储库,并将显示项目名称、Reposotry名称及其大小。存储库配置文件示例:
project =测试存储库= customer_management_test
du命令的输出:
du -sh /bbhome/shared/data/repositories/* |sort -h |tail -5
2.0G /bbhome/shared/data/repositories/1792
2.7G /bbhome/shared/data/repositories/3517
3.0G /bbhome/shared/data/repositories/2450
3.1G /bbhome/shared/data/repositories/5703
4.4G /bbhome/shared/data/repositories/2829这是我试图在REHL Bitbucket机器中运行的代码:
du -sh /bbhome/shared/data/repositories/* |sort -h |tail -5
while IFS= read -r line;do
DIR=`echo $line | awk '{print$2}'`
Rep=`cat $DIR/repository-config |grep 'project\|repo' | tr '\n' ' '`
Size=`echo $line | awk '{print $1}' `
echo $Size $Rep
done但我没有得到预期的结果。
实际:
2.0G /bbhome/shared/data/repositories/1792
2.7G /bbhome/shared/data/repositories/3517
3.0G /bbhome/shared/data/repositories/2450
3.1G /bbhome/shared/data/repositories/5703
4.4G /bbhome/shared/data/repositories/2829预期(1792年的一个例子):
2.0G project = TEST repository = customer_management_test 语法怎么了?
发布于 2019-12-17 14:20:33
第一行运行du -sh /bbhome/shared/data/repositories/* |sort -h |tail -5,并通过stdout将结果输出到终端。然后,while循环循环遍历它的标准输入(空输入)。
您需要另一个|将stdout从管道连接到循环的stdin:
du -sh /bbhome/shared/data/repositories/* |sort -h |tail -5 |
while IFS= read -r line; do
donehttps://unix.stackexchange.com/questions/557691
复制相似问题