3개의 명령을 실행하고 일부 백분율 계산이 필요한 변수로 출력을 얻으려고 하며 예제와 동일하게 표시됩니다. 이것을 스크립트로 실행할 수 있습니까?
첫 번째 명령 출력
$ isi status -q | grep -e "^Size" -e "^Used" -e "^Avail"
Size:573T
Used:448.0T
Avail:74T
두 번째 명령 출력
$ isi_classic snapshot usage | tail -n 1 | awk '{printf "\t\t\tSnapshot USED %=%.1f%%\n", $4}'
Snapshot USED =0.6%
$ isi_classic snapshot usage | tail -n -1 | awk '{ print "\t\t\tSnapshot USED:" $1}'
Snapshot USED=3.2T
샘플 스크립트awk 스크립트가 작동하지 않습니다. 공간을 삭제한 후
# isi status -q | grep -e "^Size" -e "^Used" -e "^Avail" | awk 'function print (num)
pipe pipe quote> /Size:/ {TotalSize=$NF~}
pipe pipe quote> /Used:/ {TotalUsed=$NF}
pipe pipe quote> /Avail:/ {TotalAvail=$NF} }
pipe pipe quote> END {
pipe pipe quote> used=TotalUsed/Total_Size*100
pipe pipe quote> system("isi_classic snapshot usage | tail -n -1 | awk '{ print "Snapshot_used=" $1}'")
pipe pipe quote> system("isi_classic snapshot usage | tail -n 1 | awk '{printf "Snapshot_per :%.1f\n", $4}'")
pipe pipe quote> Usedw/o=Total Used-Snapshot USED/Total Size
pipe pipe quote> print hostname ": " "\t","Total Size:" Total_Size
pipe pipe quote> printf "\t\t\tTotalUsed:%.1f\n", TotalUsed, "TB"
pipe pipe quote> printf "\t\t\tTotalAvail:%.1f\n", TotalAvail, "TB"
pipe pipe quote> printf "\t\t\tTotalUsed %:%.1f\n", used, "TB"
pipe pipe quote> printf "\t\t\tSnapshot Used :%.1f\n", Snapshot_used, "TB"
pipe pipe quote> printf "\t\t\tSnapshot Used %:%.1f\n", Snapshot_per, "TB"
pipe pipe quote> printf "\t\t\tUsed w/o:%.1f\n", Usedw/o, TB)'
awk: syntax error at source line 1
context is
function >>> print <<< (num)
missing }
missing )
awk: bailing out at source line 7
샘플 요청
Total Size : 573 TB
Total Used : 448.0 TB
Total Available : 74 TB
Total Used % : 86.1 % # Total Used(%) = Total Used/Total Size *100 = 86.1(%)
Snapshot Used : 3.2 TB
Snapshot Used % : 0.6 %
Used w/o : 85.5 % # {(Total used)-(Snapshot used)} / (Total size) = 85.49%
답변1
원래 답변:
Totalanswer=$(command1 ; command2)
Subanswer1=$(echo $Totalanswer|grep Sub1)
Subanswer2=$(echo $Totalanswer|grep Sub2)
printf " Answer1:%s\n Answer2:%s\n" $Subanswer1 $SubAnswer2
코멘트 추가: 중요한 것은 올바른 도구를 사용하여 필요한 정보를 얻는 것입니다. 외부(즉, 기본이 아닌 쉘) 명령을 사용하는 것은 피해야 합니다. grep을 bash 네이티브로 교체(힌트)은 독자에게 연습 문제로 남겨 둡니다.