Le code que le shell juge si un fichier, un répertoire existe ou a un shell permission_linux

2020-05-23

Code de base


 #! / bin / sh
 myPath = "/ var / log / httpd /"
 monFichier = "/ var /log/httpd/access.log"
 #Le paramètre -x détermine ici si $ myPath existe et possède des autorisations exécutables

 if [! -x "$ myPath"]; then
 mkdir "$ myPath"
 Fi
 #Le paramètre -d détermine ici si $ myPath existe
 if [! -d "$ myPath"]; then
 mkdir "$ myPath"
 Fi
 #Le paramètre -f détermine ici si $ myFile existe
 if [! -f "$ myFile"]; then
 touchez "$ monFichier"
 Fi
 #Les autres paramètres sont -n, -n sert à déterminer si une variable a une valeur
 if [! -n "$ myVar"]; then
 echo "$ myVar est vide"
 sortie 0
 Fi
 #Deux variables pour déterminer si elles sont égales
 if ["$ var1" = "$ var2"]; then
 écho «$ var1 eq $ var2»
 autre
 echo ‘$ var1 not eq $ var2 ′
 fi 
 

déclaration de jugement du shell

Expression "if" de contrôle de flux Si la condition est vraie, alors exécutez la partie après alors: si….; alors
….
elif….; puis
….
sinon
….
fi
Dans la plupart des cas, vous pouvez utiliser la commande test pour tester la condition. Par exemple, vous pouvez comparer des chaînes de caractères, déterminer si un fichier existe et s'il est lisible, etc ... utilise généralement "[]" pour indiquer un test conditionnel. Il est important de noter les espaces ici. Assurez-vous de mettre des espaces entre crochets.
[-f "somefile"]: Déterminez s'il s'agit d'un fichier
[-x "/ bin / ls"]: Déterminez si / bin / ls existe et possède des autorisations exécutables
[-n "$ var"]: Détermine si la variable $ var a une valeur
["$ a" = "$ b"]: Détermine si $ a et $ b sont égaux -r fichier lisible par l'utilisateur est vrai
-w fichier L'utilisateur peut l'écrire comme vrai
-x fichier L'exécutable utilisateur peut être vrai
-f fichier fichier est un fichier normal est vrai
-d fichier fichier est le répertoire est vrai
-c fichier fichier est un caractère fichier spécial est vrai
-b fichier fichier est un fichier spécial de bloc est vrai
-s fichier est vrai lorsque la taille du fichier n'est pas 0
-t file True lorsque le périphérique spécifié par le descripteur de fichier (1 par défaut) est le terminal
################################################# #######
Script shell avec sélection conditionnelle
Un simple script shell est généralement suffisant pour les tâches qui ne contiennent pas de variables. Mais lors de l'exécution de certaines tâches de prise de décision, il est nécessaire d'inclure le jugement de condition de si / alors. La programmation de scripts shell prend en charge de telles opérations,
Y compris les opérations de comparaison, juger si le fichier existe, etc. Les options de commande de base si conditionnelles sont: -eq - compare si deux paramètres sont égaux (par exemple, si [2 –eq 5])
-ne - Compare si deux paramètres ne sont pas égaux
-lt: que le paramètre 1 soit inférieur au paramètre 2
-le: si le paramètre 1 est inférieur ou égal au paramètre 2
-gt: le paramètre 1 est supérieur au paramètre 2
-ge - Indique si le paramètre 1 est supérieur ou égal au paramètre 2
-f - vérifie si un fichier existe (par exemple, si [-f "nomfichier"])
-d - vérifie si le répertoire existe
Presque tous les jugements peuvent être mis en œuvre avec ces opérateurs de comparaison. L'option de commande -f couramment utilisée dans les scripts vérifie si un fichier existe avant de l'exécuter. ################################################# ################ Déterminer si le fichier existe


 #! / bin / sh
 aujourd'hui = `date -d hier +% y% m% d`
 file = "apache_ $ today.tar.gz"
 cd / home / chenshuo / shell
 if [-f "$ file"]; then
 écho "OK"
 autre
 echo "error $ file"> error.log
 mail -s "échec de sauvegarde du test" linuxcy@126.com fi 
 

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