아래의 기본 스크립트를 개선할 수 있는 방법에 대해 도움을 요청하고 싶습니다.
따라서 bash에 인수를 전달할 수 있지만 awk 명령을 더 유연하게 만들 수 있습니까?
명령에 오류가 발생했습니다 df -h
. 2줄의 파일 시스템이 1개 표시됩니다(1줄만 있어야 함).
$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
이렇게 하면 1개의 파일 시스템에 대한 출력이 여러 줄에 걸쳐 있지 않게 됩니다.
따라서 최종 스크립트는 다음과 같습니다.
df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'