Portál AbcLinuxu, 13. května 2025 18:39
ioc0 vol_id 0 type IM, 2 phy, 136 GB, state OPTIMAL, flags ENABLED ioc0 phy 0 scsi_id 0 FUJITSU MAP3147NC 0108, 136 GB, state ONLINE, flags NONE ioc0 phy 1 scsi_id 1 SEAGATE ST3146707LC 0002, 136 GB, state ONLINE, flags NONEKdyz si udelam to ze si to co program vypise ulozim do nejakeho souboru tak stim dokazu udelat to co chci, ale v realnem case bez ukladani do nejakeho souboru ne! Pomuze mi nekdo prosim?
Jestli to chápu správně, tak potřebujete z toho výpisu vyfiltroval jedinou řádku a na ní zjistit, jestli je state OPTIMAL
. Pak by mělo stačit tohle:
identif='identifikace_radky'; if program-z-ktereho-to-leze | grep "$identif" | grep 'state OPTIMAL' -q; then echo "$identif not optimal..."; fi
Stačil by i jediný grep a obsah $identif
by neměl být moc divoký.
Co tohle?
identif='identifikace_radky'; status=`program-z-ktereho-to-leze | sed -n 's/.*state \([a-zA-Z]*\).*/\1/p'`; # popř. ještě | tr a-z A-Z if [ "$status" = "OPTIMAL" ]; then echo "$identif not optimal.."; fi
unset x p for x in $( command ); do if [[ "$p" == "state" ]]; then echo ${x%,} break fi p=$x doneZa "command" je třeba dosadit příkaz, kterej vrací vámi uvedený výstup.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.