如何在bash脚本中使用du-sh

如何在bash脚本中使用du-sh,bash,du,Bash,Du,我想在校园HPC的我的工作文件中创建一个管理员。如果我的磁盘使用量超过50GB,我希望我的所有作业都停止(并可能收到一封关于此的电子邮件)。我想做的是这样的事情: #!/bin/bash run=1 while [ $run -gt 0 ]; do a=du -sh ~ if [ $a -gt 50GB ]; then run=0 break fi done qdel j*fd qdel j*fd #send email in some way 我被困在两件事上

我想在校园HPC的我的工作文件中创建一个管理员。如果我的磁盘使用量超过50GB,我希望我的所有作业都停止(并可能收到一封关于此的电子邮件)。我想做的是这样的事情:

#!/bin/bash

run=1
while [ $run -gt 0 ]; do
  a=du -sh ~
  if [ $a -gt 50GB ]; then
    run=0
    break
  fi
done

qdel j*fd
qdel j*fd
#send email in some way
我被困在两件事上:

  • 我不能在脚本中使用du-sh,我得到一个错误:

    -sh:找不到命令

  • 我不知道如何比较尺码

  • 我怎样才能做到这一点

  • a=$(du_命令)
    a=du-sh~
    相当于环境变量
    a=du

  • 比较大小(kb):
    a=$(du-sk~|awk'{print$1}')
    和[${a}-gt 51200]


  • 正确的命令是
    a=$(du-sh~)
    该命令
    a=du-sh~
    表示
    -sh~
    ,带有环境变量
    a=du
    @IgnacioVazquez Abrams:是的,行5@NahuelFouilleul,如何比较大小?@Yotam:不,第5行没有运行
    du
    命令,正如Nahuel解释的那样。