아래 기본 스크립트를 어떻게 개선할 수 있는지 도움을 요청하고 싶습니다.
그래서 bash에 인수를 전달할 수 있었지만 awk 명령을 사용하여 더 유연하게 만들 수 있습니까?
1개의 파일 시스템에 대해 2줄을 표시하는 명령 에서 오류가 발생했습니다 df -h
(한 줄만 있어야 함).
$6
그런 다음 인수 번호( 및 $5
)가 변경되었으므로 스크립트에 올바른 매개변수가 표시되지 않습니다 .
견본:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/test/test2/test3 1.1G 100M 1G 1% /test
/dev/test/test2/test3/test4
1.1G 100M 1G 1% /tst2
$ cat myscript.sh
#!bin/bash
df -h "$@" | awk '{print $6,"=",$5}' | sed -n '1!p'
$ ./myscript.sh /test /tst2
내 출력은
/test=1%
=/tst2
하지만 그래야 한다
/test=1%
/tst2=1%
답변1
대신 이것을 사용하면 출력 후처리에 대해 걱정할 필요가 없습니다 df
.
df -P
이렇게 하면 하나의 파일 시스템에 대한 출력이 여러 줄에 걸쳐 있지 않게 됩니다.
따라서 최종 스크립트는 다음과 같습니다.
df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'