L'étude de Linux Shell note le troisième jour _ autres

2019-12-26

Le troisième jour: sélection des conditions

Dagang

Analyse d'exemple d'application

Test conditionnel

si ... sinon ... fi

cas… dans… esac

Menu fonction :

Après avoir exécuté le script

Appuyez sur 1 pour afficher l'heure actuelle

Appuyez sur 2 pour afficher la charge CPU

Appuyez sur 3 pour afficher la mémoire restante

Appuyez sur 0 pour quitter le script

Appuyez sur d'autres caractères pour quitter lorsque l'invite dépasse la plage de sélection

Étapes d'analyse.

#date +% T

interception awk de disponibilité

gratuit --m

Format de test conditionnel

#test --option obj

# [-option obj]

Retourne le résultat


  1. Le résultat du test de contenu d'expression est vrai

  2. Le résultat du test de contenu d'expression est faux

    Classification des objets de test

    Résultat d'exécution (exécution réussie ou échec) Fichier

    (si le fichier existe, etc.)

    Texte (cohérent)

    nombres (comparaison numérique)

    Options pour les tests conditionnels


    options fonction
    -d Répertoire
    -e Présence
    -f est-ce un fichier normal?
    -s La taille du fichier est-elle égale à 0
    -r Est-il lisible
    -w Inscriptible
    -x Est-il exécutable

    Symboles d'opération logique


    options

    fonction

    - a

    et opération

    - o

    ou action

    !

    Aucune opération

    Exemple:

    #test -e / etc / passwd -a -e / etc / shadow Il y a une opération a et au milieu, alors tous sont 0 pour obtenir 0

    #test -e / etc / passwd -o -e / etc / groups S'il y a un o ou une opération au milieu, alors il y en a une vraie puis vraie 0

    Opérateur de chaîne

    == Deux chaînes sont égales

    ! = Deux chaînes ne sont pas égales

    -z chaîne vide

    -n chaîne non vide

    Exemple:

    #test --z $ LOGNAME

    #echo $ LOGNAME

    #echo $?

    Opérateurs de comparaison numériques


    Symboles

    instructions

    - eq

    égal

    - ne

    Différent

    2) écho "vous sélectionnez 2" ;;

    3) écho "vous sélectionnez 3" ;;

    4) écho "vous sélectionnez 4" ;;

    5) écho "vous sélectionnez 5" ;;

    *) echo "basename $ Ce n'est pas compris entre 1 et 5 ″

    esac

    cas ... in.esac exemple 2

    Le titre est: La note de l'élève au test est de 0 à 100 points. Si vous avez plus de 85 ans, vous êtes invité à être le meilleur!, À 70-84, vous obtenez une bonne note!, À 60- 74 spectacles arrivent!, Moins de 60 points spectacles Vous devez étudier dur!

    #! / Bin / bash

    echo –n "veuillez saisir votre marque:"

    marque de lecture

    case $ mark dans

    100 | 9 [0-9] | 8 [5-9]) echo "you are the best!" ;; 100, 90-99, 85-89

    8 [0-4] | 7 [0-9]) echo "vous obtenez une bonne note!" ;; 80-84, 70-79

    7 [0-4] | 6 [0-9]) écho "viens!" ;; 70-74, 60-69

    [0-5] [0-9]) echo "Vous devez étudier dur!" ;; 00-59

    esac

    Résolution des problèmes d'aujourd'hui

    Utilisez if ... else ... fi pour juger les variables d'entrée.

    Exécutez l'instruction correspondante sur chaque branche jugée.

    menu.sh

    #! / Bin / bash

    clear

    echo "——————– menu ———————"

    echo "1) Show Time"

    echo "2) CPU load"

    echo "3) Mémoire libre"

    echo "0) Exit"

    echo "————————————————"

    echo -n "Entrez votre choix [0-3]:"

    lire NUM

    if [$ {NUM} -lt 0 -o $ {NUM} -gt 3]

    puis

    echo "Ce n'est pas entre 0-3."

    else

    if ["$ {NUM}" == "1"]

    puis

    echo "` date +% T` "

    else

    if ["$ {NUM}" == "2"]

    puis

    echo "` uptime | awk -F ‘[,:]’ ‘{print $ 7} ''”

    else

    if ["$ {NUM}" == "3"]

    puis

    echo "` free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ''”

    else

    exit

    fi

    fi

    fi

    fi

    Revue de cette leçon:

    Type de test conditionnel

    Test de fichier

    Test de texte

    Test numérique

    Test logique

    si ... sinon ... fi structure de sélection conditionnelle

    cas… dans… esac

    Après le test en classe

    1. Modifiez menu.sh pour utiliser le mode non-menu et le mode de transfert des paramètres pour sélectionner. Par exemple #. / Menu.sh 1 temps de sortie

    2. Utilisez la méthode des cas pour implémenter la méthode de sélection de menu

    Réponse de Sudu: (Il est inévitable qu'il y aura des erreurs, mais cela peut être réalisé avec succès)

    1, après avoir modifié menu.sh

    #! / Bin / bash

    si [$ 1 -lt 0 -o $ 1 -gt 3]

    puis

    echo "Ce n'est pas entre 0-3."

    sinon

    si ["$ 1" == "1"]

    puis

    echo "` date +% T` "

    sinon

    si ["$ 1" == "2"]

    puis

    echo "` uptime | awk -F ‘[,:]‘ ‘{print $ 7} ''”

    sinon

    si ["$ 1" == "3"]

    puis

    echo "` free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ''”

    sinon

    quitter

    fi

    fi

    fi

    fi

    2, #! / Bin / bash

    effacer

    écho “——————– menu ————————”

    écho "1) Afficher l'heure"

    écho "2) Charge CPU"

    écho "3) Mémoire libre"

    écho "0) Quitter"

    écho “————————————————”

    echo -n "Entrez vous avez choisi [0-3]:"

    lire NUM

    cas $ NUM dans

    1) date +% T ;;

    2) uptime | awk -F ‘[,:]‘ ‘{print $ 7} ';

    3) free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ';;

    0) exit ;;

    *) echo "Ce n'est pas entre 0-3." ;;

    esac

    Il y a de nombreux gains aujourd'hui. J'ai regardé le tutoriel pendant une demi-heure pendant près de 3 heures.

    Bien que si ... sinon ... fi est plus facile à comprendre, il semble beaucoup plus simple d'utiliser le cas, haha, regardez les préférences personnelles.

    Un tutoriel quotidien semble être suffisant. Si vous regardez trop, vous vous sentirez étourdi. Hehe. Continuez à apprendre ~ SPAN style = "FONT-SIZE: 9pt; FONT-FAMILY: Courier New"> if ["$ {NUM}" == "2"]

    puis

    echo "` uptime | awk -F ‘[,:]’ ‘{print $ 7} ''”

    else

    if ["$ {NUM}" == "3"]

    puis

    echo "` free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ''”

    else

    exit

    fi

    fi

    fi

    fi

    Revue de cette leçon:

    Type de test conditionnel

    Test de fichier

    Test de texte

    Test numérique

    Test logique

    si ... sinon ... fi structure de sélection conditionnelle

    cas… dans… esac

    Après le test en classe

    1. Modifiez menu.sh pour utiliser le mode non-menu et le mode de transfert des paramètres pour sélectionner. Par exemple #. / Menu.sh 1 temps de sortie

    2. Utilisez la méthode des cas pour implémenter la méthode de sélection de menu

    Réponse de Sudu: (Il est inévitable qu'il y aura des erreurs, mais cela peut être réalisé avec succès)

    1, après avoir modifié menu.sh

    #! / Bin / bash

    si [$ 1 -lt 0 -o $ 1 -gt 3]

    puis

    echo "Ce n'est pas entre 0-3."

    sinon

    si ["$ 1" == "1"]

    puis

    echo "` date +% T` "

    sinon

    si ["$ 1" == "2"]

    puis

    echo "` uptime | awk -F ‘[,:]‘ ‘{print $ 7} ''”

    sinon

    si ["$ 1" == "3"]

    puis

    echo "` free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ''”

    sinon

    quitter

    fi

    fi

    fi

    fi

    2, #! / Bin / bash

    effacer

    écho “——————– menu ————————”

    écho "1) Afficher l'heure"

    écho "2) Charge CPU"

    écho "3) Mémoire libre"

    écho "0) Quitter"

    écho “————————————————”

    echo -n "Entrez vous avez choisi [0-3]:"

    lire NUM

    cas $ NUM dans

    1) date +% T ;;

    2) uptime | awk -F ‘[,:]‘ ‘{print $ 7} ';

    3) free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ';;

    0) exit ;;

    *) echo "Ce n'est pas entre 0-3." ;;

    esac

    Il y a de nombreux gains aujourd'hui. J'ai regardé le tutoriel pendant une demi-heure pendant près de 3 heures.

    Bien que si ... sinon ... fi est plus facile à comprendre, il semble beaucoup plus simple d'utiliser le cas, haha, regardez les préférences personnelles.

    Un tutoriel quotidien semble être suffisant. Si vous regardez trop, vous vous sentirez étourdi. Hehe. Continuez à apprendre ~ -3]: "

    lire NUM

    cas $ NUM dans

    1) date +% T ;;

    2) uptime | awk -F ‘[,:]‘ ‘{print $ 7} ';

    3) free -m | awk ‘$ 1 ==” Mem: ”{print $ 4} ';;

    0) exit ;;

    *) echo "Ce n'est pas entre 0-3." ;;

    esac

    Il y a de nombreux gains aujourd'hui. J'ai regardé le tutoriel pendant une demi-heure pendant près de 3 heures.

    Bien que si ... sinon ... fi est plus facile à comprendre, il semble beaucoup plus simple d'utiliser le cas, haha, regardez les préférences personnelles.

    Un tutoriel quotidien semble être suffisant. Si vous regardez trop, vous vous sentirez étourdi. Hehe. Continuez à apprendre ~

    www.xd1998.com@2001-2030Partage De Technologie