我正在尝试编写一个 shell 脚本,它将打印 Bitbucket 的前 5 个最大存储库,并将显示项目名称、存储库名称及其大小。存储库配置文件示例:
[bitbucket] 项目 = TEST 存储库 = 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
语法有什么问题?
您的第一行运行
du -sh /bbhome/shared/data/repositories/* |sort -h |tail -5
并通过标准输出将结果输出到终端。然后你的 while 循环遍历它的标准输入(它是空的)。您需要另一个
|
从管道连接标准输出到循环的标准输入: