获取每个用户的磁盘使用情况

kg9*_*g98 6 linux bash user

当我输入时,sudo du -sh ~student1我得到了我期望的输出(见截图)。但是,当我尝试使用以下脚本时:

#!/bin/bash

for user in "$@"; do
    sudo du -sh ~$user
done
Run Code Online (Sandbox Code Playgroud)

做同样的事情,我得到一个目录不存在的错误。是一个屏幕截图。

(我知道我可以做到sudo du -sh student1 student2...,而且 bash 脚本没用,但我仍然不明白为什么它不起作用。)

我查看 了特定用户的磁盘使用总量,但这并不是我想要的。

AFH*_*AFH 4

shell 对扩展参数执行单次传递,因此$user被扩展,但前面的参数~不会被扩展。为了重新解析输入行,请使用eval

...
eval sudo du -sh ~$user
...
Run Code Online (Sandbox Code Playgroud)