gpt4 book ai didi

bash - 使用 read 命令解析 linux shell 脚本中的 du -s 输出

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

如果用户主目录超过一定大小,我正在尝试编写一个 shell 脚本来执行操作。不幸的是,当我尝试使用读取命令拆分 du -s 输出时,我得到“找不到命令”,因为它试图将数字传递给 shell,而不是像我想要的那样传递给变量.这是我到目前为止的脚本。

#!/bin/bash
cd /home
for i in `ls`
do
j=`du -s $i`
#this line gives me the error
k=`$j |read first;`
done

我得到如下输出:

./takehome.sh: line 6: 3284972: command not found

其中 3284972 是目录的大小。

最佳答案

我想你会想要类似的东西

#!/bin/bash
for i in *
do
j=`du -s "$i" | cut -f 1`
echo $i size is $j
done

读入另一个变量,读取并使用它似乎是多余的。

我相信更优雅的解决方案是 Jonathan Leffler 的第二种方法(在此处复制粘贴)

#!/bin/bash
cd /home
du -s * |
while read size name
do
...
done

关于bash - 使用 read 命令解析 linux shell 脚本中的 du -s 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619432/

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