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

PHP中文网
PHP中文网original
2017-06-20 11:24:481990parcourir

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

[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0
[root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0
[root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1
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
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

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
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~
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
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
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~

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
.

     

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:
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
Article précédent:Bases du système Linux (1)Article suivant:Bases du système Linux (1)