Maison Opération et maintenance exploitation et maintenance Linux Introduction et utilisation de la syntaxe de base du shell

Introduction et utilisation de la syntaxe de base du shell

Jun 20, 2017 am 11:24 AM
shell 基本 语法

1. Variables

1. Règles de dénomination des variables : commencez par une lettre ou un trait de soulignement, suivi de chiffres, de lettres ou de traits de soulignement. Il est préférable de ne pas nommer la variable avec désinvolture, mais de pouvoir la deviner. sa signification lorsque vous voyez le nom de la variable.

2. Attribuez des variables :

[root@bogon ~]# egon_salary=20000

[root@bogon ~]# echo ${egon_salary. }yuan

20000yuan

4. Il n'est pas nécessaire de déclarer les types de données dans bash , la valeur par défaut est le type de caractère

2. Opérateurs

1. + - * / %

[root@bogon ~]# echo $[5 %2]

1

2 Opérateurs d'affectation : =, +=, -=, *=. , /=, %=

[root@bogon ~]# x= 10

[root@bogon ~]# ((x+=1))
[root@bogon ~]# echo $x

11

3. Opérateur relationnel : <, >,!=,==,>=,<=,||,&&


les opérateurs relationnels sont souvent utilisé avec (( )), [] peut obtenir le même résultat, mais (( ) ) ne peut pas déterminer le type d'un fichier. Vous devez utiliser [] pour déterminer le type de fichier. [] a le même effet que la commande test.

Utilisez $? pour afficher le résultat de l'exécution de la commande. Le résultat est 0 pour vrai et non-0 pour faux

[root@bogon ~]# x=10

[root. @bogon ~]# ((x>=8))

[root@bogon ~]# echo $?

0

Calculatrice en shell


Je l'ai déjà dit. que vous pouvez utiliser $[] pour effectuer quelques opérations simples, mais s'il s'agit d'opérations décimales, vous devez utiliser des calculs dans le shell

Tout d'abord, vous devez installer le logiciel, yum install -y bc

[root@bogon ~]# res=$(echo 'scale=2;1/3' |bc -l | cut -d'.' -f2)

[root@bogon ~] # echo ${res}%

33%

5.test commande test

test

-n str La longueur de la chaîne n'est pas nulle

-z str La longueur de la chaîne est nulle

-b Le fichier existe et est un fichier bloc

-d Fichier -e le fichier existe et est un fichier répertoire

- Le fichier f existe et est un fichier normal

Le fichier -h existe et est un fichier de lien (identique à -L)

Le fichier -s existe et est supérieur à zéro octet

Comparaison entre les fichiers

file1 -nt file2 file1 a été créé après file2

file1 -ot file2 file1 a été créé avant file2

Comparaison entre entiers

int1 -ne int2 int1 et int2 ne sont pas égaux

int1 -eq int2 int1 et int2 sont égaux

 int1 -lt int2 int1 est inférieur à int2

 int1 -le int2 int1 est inférieur ou égal à int2

 int1 -gt int2 int1 est supérieur à int2

 int1 -ge int2 int1 est supérieur à Égal à int2

Comparaison entre les chaînes

str1 = str2 str1 et str2 sont égaux

str1 ! =str2 str1 et str2 ne sont pas égaux

Comparaison entre expressions

Expression1 -a expression2 L'expression 1 et l'expression 2 sont toutes deux vraies

expression1 -o expression2 expression Formule 1 ou Expression 2 est vrai

6. Exemples de tests

Test de comparaison numérique :

Test de chaîne

[root@bogon ~]# [[ 2 > 1 ]][root@bogon ~]# echo $?0
[root@bogon ~]# ((20>10))[root@bogon ~]# echo $?0
[root@bogon ~]# ((20<10))[root@bogon ~]# echo $?1
Copier après la connexion

[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0
[root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0
[root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1
Copier après la connexion
Pour comparer simplement des nombres, utilisez (( ))
Sauf pour les nombres simples Pour comparer, utilisez [[ ] ]
[root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?0
[root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?0
Copier après la connexion
3. Contrôle des processus
[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0
Copier après la connexion

1.if branche

 1 ) Vérifiez le mot de passe du compte utilisateur :

 2) Déterminer la note

input your name : zhangcan
input password : 123login successful
[root@bogon ~]# ./usertest.sh input your name : hha
input password : hag
user or password error
Copier après la connexion
2.
#! /bin/bashuser='zhangcan'password='123'read -p 'input your name : ' name
read -p 'input password : ' codeif [ $name = $user -a $code = $password ];then
        echo 'login successful'elseecho 'user or password error'fi~
Copier après la connexion
while (condition)

do
#!/bin/bash #根据用户输入的成绩,判断所属档次,并输出给用户read -p 'input your score : ' scoreif  [ $score -ge 90 ];then
    echo '优秀'elif [ $score -ge 70 -a $score -lt 90 ];then
    echo '良好'elif [ $score -ge 60 -a $score -lt 70 ];then
    echo '及格'elif [ $score -lt 60 ];then
    echo '较差'fi
Copier après la connexion
commande

done

Exemple : Déterminer l'entrée de l'utilisateur Quel type de fichier est

3. boucle for

 for i in {1..10} #in ne doit pas nécessairement être suivi d'un nombre, tant qu'il y en a Toutes les commandes qui renvoient des résultats peuvent faire

echo $i
#!/bin/bashwhile :
do
    read -p 'input your file : ' fileif [ -z $file ];thencontinueelsebreakfi
doneif [ -f $file ];then
    echo "$file is regular file"elif [ -b $file ];then
    echo "$file is block file"elif [ -d $file ];then
    echo "$file is directory file"elseecho "$file type unkonw"fi
Copier après la connexion
done

Exemple 1 : Écrivez un script pour tester les IP pouvant être utilisées dans le sous-réseau

Exemple 2 : Comptez le nombre de chaque type de fichier sous /dev

Boucles imbriquées

Exemple. 1 : Produisez une table de multiplication
#!/bin/bashfor i in {1..50}
do
    ping -c1 192.168.16.$i &> /dev/null  # -c1表示ping一次if [ $? -ne 0 ];then
        echo "192.168.16.$i successful"echo "192.168.16.$i" >> ~/ipavailable.txt
    fi
done~
Copier après la connexion

Exemple 2 : Vérifiez le compte de connexion et le mot de passe de l'utilisateur. Après une connexion réussie, vous pouvez exécuter la commande et quitter lorsque vous entrez quitter
#!/bin/bashdir='/dev'for i in $(ls $dir)
doif [ -h $dir/$i ];then
        ((link+=1))elif [ -f $dir/$i ];then
        (( rfile+=1))elif [ -d $dir/$i ];then
        ((directory+=1))elif [ -b $dir/$i ];then
        (( block+=1 ))else(( typeunknow+=1))
    fi
done
echo 'block' $block
echo 'regular file' $rfile
echo 'directory' $directory
echo 'link' $link
echo 'unknow' $typeunknow
Copier après la connexion
.

     

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer Classic Shell sur Windows 11 ? Comment installer Classic Shell sur Windows 11 ? Apr 21, 2023 pm 09:13 PM

&lt;p&gt;La personnalisation de votre système d'exploitation est un excellent moyen de rendre votre vie quotidienne plus agréable. Vous pouvez modifier l'interface utilisateur, appliquer des thèmes personnalisés, ajouter des widgets, etc. Aujourd’hui, nous allons vous montrer comment installer ClassicShell sur Windows 11. &lt;/p&gt;&lt;p&gt;Ce programme existe depuis longtemps et vous permet de modifier le système d'exploitation. Des bénévoles ont désormais commencé à diriger l’organisation, qui a été dissoute en 2017. Le nouveau projet s'appelle OpenShell et est actuellement disponible sur Github pour les personnes intéressées. &lt;/p&gt;&a

Explorer.exe ne démarre pas au démarrage du système [Réparer] Explorer.exe ne démarre pas au démarrage du système [Réparer] Jun 03, 2023 am 08:31 AM

De nos jours, de nombreux utilisateurs de Windows commencent à rencontrer de graves problèmes avec le système Windows. Le problème est qu'Explorer.exe ne peut pas démarrer une fois le système chargé et les utilisateurs ne peuvent pas ouvrir de fichiers ou de dossiers. Cependant, les utilisateurs Windows peuvent ouvrir l'Explorateur Windows manuellement à l'aide de l'invite de commande dans certains cas et cela doit être fait à chaque redémarrage du système ou après le démarrage du système. Cela peut être problématique et est dû aux facteurs suivants mentionnés ci-dessous. Fichiers système corrompus. Activez les paramètres de démarrage rapide. Pilotes d’affichage obsolètes ou problématiques. Des modifications ont été apportées à certains services du système. Fichier de registre modifié. En gardant à l'esprit tous les facteurs ci-dessus, nous en avons proposé quelques-uns qui aideront sûrement les utilisateurs.

Le déploiement PowerShell échoue avec le problème HRESULT 0x80073D02 résolu Le déploiement PowerShell échoue avec le problème HRESULT 0x80073D02 résolu May 10, 2023 am 11:02 AM

Voyez-vous ce message d'erreur « Add-AppxPackage : Le déploiement a échoué avec HRESULT : 0x80073D02, Le package ne peut pas être installé car la ressource qu'il modifie est actuellement en cours d'utilisation. Erreur 0x80073D02... » dans PowerShell lorsque vous exécutez le script ? Comme l'indique le message d'erreur, cela se produit lorsque l'utilisateur tente de réenregistrer une ou toutes les applications WindowsShellExperienceHost pendant l'exécution du processus précédent. Nous avons quelques solutions simples pour résoudre ce problème rapidement. Correctif 1 – Terminez le processus hôte d’expérience que vous devez terminer avant d’exécuter la commande PowerShell

Comment transformer rapidement votre code Python en API Comment transformer rapidement votre code Python en API Apr 14, 2023 pm 06:28 PM

Lorsqu'il s'agit de développement d'API, vous pouvez penser à DjangoRESTFramework, Flask et FastAPI. Oui, ils peuvent être utilisés pour écrire des API. Cependant, le framework partagé aujourd'hui vous permet de convertir plus rapidement les fonctions existantes en API. Introduction à Sanic Sanic[1] est un serveur Web Python3.7+ et un framework Web conçus pour améliorer les performances. Il permet l'utilisation de la syntaxe async/await ajoutée dans Python 3.5, qui peut efficacement éviter le blocage et améliorer la vitesse de réponse. Sanic s'engage à fournir un moyen simple et rapide de créer et de lancer

Comment supprimer rapidement la ligne à la fin d'un fichier sous Linux Comment supprimer rapidement la ligne à la fin d'un fichier sous Linux Mar 01, 2024 pm 09:36 PM

Lors du traitement de fichiers sous les systèmes Linux, il est parfois nécessaire de supprimer des lignes à la fin du fichier. Cette opération est très courante dans les applications pratiques et peut être réalisée grâce à quelques commandes simples. Cet article présentera les étapes pour supprimer rapidement la ligne à la fin du fichier dans le système Linux et fournira des exemples de code spécifiques. Étape 1 : Vérifiez la dernière ligne du fichier Avant d'effectuer l'opération de suppression, vous devez d'abord confirmer quelle ligne est la dernière ligne du fichier. Vous pouvez utiliser la commande tail pour afficher la dernière ligne du fichier. La commande spécifique est la suivante : tail-n1filena.

Différentes façons d'exécuter des fichiers de script shell sous Windows Différentes façons d'exécuter des fichiers de script shell sous Windows Apr 13, 2023 am 11:58 AM

Sous-système Windows pour Linux La première option consiste à utiliser le sous-système Windows pour Linux ou WSL, qui est une couche de compatibilité permettant d'exécuter les exécutables binaires Linux de manière native sur les systèmes Windows. Il fonctionne pour la plupart des scénarios et vous permet d'exécuter des scripts shell sous Windows 11/10. WSL n'est pas automatiquement disponible, vous devez donc l'activer via les paramètres de développement de votre appareil Windows. Vous pouvez le faire en allant dans Paramètres > Mise à jour et sécurité > Pour les développeurs. Passez en mode développeur et confirmez l'invite en sélectionnant Oui. Ensuite, cherchez W

Voici les correctifs pour le problème de non-fonctionnement d'Open Shell Windows 11 Voici les correctifs pour le problème de non-fonctionnement d'Open Shell Windows 11 Apr 14, 2023 pm 02:07 PM

Le shell ouvert qui ne fonctionne pas sous Windows 11 n’est pas un problème nouveau et tourmente les utilisateurs depuis l’avènement de ce nouveau système d’exploitation. La cause du problème de non-fonctionnement d’Open-Shell Windows 11 n’est pas spécifique. Cela peut être dû à des erreurs inattendues dans les programmes, à la présence de virus ou de logiciels malveillants ou à des fichiers système corrompus. Pour ceux qui ne le savent pas, Open-Shell remplace Classic Shell, qui a été abandonné en 2017. Vous pouvez consulter notre tutoriel sur la façon d'installer Classic Shell sur Windows 11. Comment remplacer le menu Démarrer de Windows 11

Super hardcore ! 11 exemples de scripts Python et Shell très pratiques ! Super hardcore ! 11 exemples de scripts Python et Shell très pratiques ! Apr 12, 2023 pm 01:52 PM

Quelques exemples de scripts Python : alarmes WeChat d'entreprise, clients FTP, clients SSH, clients Saltstack, clients vCenter, obtention du délai d'expiration du certificat SSL du nom de domaine, envoi des prévisions météo du jour et des graphiques de tendances météorologiques futures ; quelques exemples de scripts Shell : sauvegarde complète SVN, Zabbix surveille l'expiration des mots de passe des utilisateurs, construit YUM local et les besoins des lecteurs sont mentionnés dans l'article précédent (lorsque la charge est élevée, recherchez les scripts de processus qui occupent une quantité plus élevée et stockent ou envoient des notifications, donc c'est un peu long) ; veuillez le lire patiemment. À la fin de l'article, il y a un œuf de Pâques après tout. Script Python faisant partie de l'alarme WeChat d'entreprise Ce script utilise l'application WeChat d'entreprise pour exécuter l'alarme WeChat et peut être utilisé

See all articles