если с -f команда не работает [закрыто]

El formato legible humano -de los números interfiere, por lo que primero debe tener una salida consistente. Portable, puede usar la opción -Ppara generar en bloques de 1024

df -P | awk 'NR>2{sum+=$2}END{print sum}'

Si usa GNU dfpuede especificar --blocksizeopción:

df --block-size=1  | awk 'NR>2{sum+=$2}END{print sum}'

NR>2es para evitar tener que lidiar con la línea de encabezado Size. En cuanto a volver a formatear los datos en un formato legible por humanos, si está en Linux puede usar la herramienta numfmt; de lo contrario, -implemente el convertidor en awk. Consulte la respuesta relacionada .

Tenga en cuenta también que dfgenera tamaños para todos los sistemas de archivos, incluidos los sistemas de archivos virtuales como udevy tmpfs. Puede considerar filtrarlos si solo desea los discos físicos reales. Entonces, si consideramos solo los sistemas de archivos que tienen un archivo de dispositivo representado en el sistema de archivos /dev/, probablemente podría usar algo como esto:

df -P | awk 'NR>2 && /^\/dev\//{sum+=$2}END{print sum}'

Con GNU df, también podría considerar usar el indicador --localpara ignorar la eliminación de sistemas de archivos.

-4
21.04.2017, 17:06
2 ответа

Как вы можете проверить сами здесь ,

$ shellcheck myscript

Line 50:
for fileName in $FILE_LIST; do
^-- SC1073: Couldn't parse this for loop.
                            ^-- SC1061: Couldn't find 'done' for this 'do'.

Line 60:
    fi
    ^-- SC1062: Expected 'done' matching previously mentioned 'do'.
      ^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again.
3
28.01.2020, 05:20

Посмотрите пример ниже, это поможет вам понять оператор if

#!/bin/bash

if [ -f "$1" ]
then
    echo "$1 is a file"
else
    echo "$1 is not a file"
fi

Смотрите также эту ссылку

0
28.01.2020, 05:20

Теги

Похожие вопросы