Principes de base de Shell - un langage de script facile à utiliser


définition

Qu'est-ce que Shell

• Shell n'est pas seulement un langage de commande, mais aussi un langage de programmation.
• C'est un environnement qui fournit une interface avec le système linux (unix).
• Recevoir l'entrée de l'utilisateur, exécuter le programme en fonction de l'entrée et afficher le sortie du programme.
• Vous pouvez exécuter les commandes utilisateur, les programmes et les scripts shell

Pour les utilisateurs, le shell est l'utilitaire le plus important. Une compréhension approfondie et la maîtrise des caractéristiques du shell et de la façon de l'utiliser est la clé pour faire bon usage du système Unix / Linux


Classification des coquilles

• Tout comme il existe différents types de systèmes, il existe différentes versions du shell, chacune avec son propre ensemble de commandes et de fonctions.
• Le shell UNIX a été écrit au milieu des années 1970 par Stephen Byrne et AT&T Bell Labs dans le New Jersey

  1. Invite Bourne shell $

Bourne shell comprend trois types: Bourne shell (sh), Korn shell (ksh) et Bourne Again Shell.

  1. Invite du shell C %

Le shell C comprend deux types: csh et tcsh


Interpréteur de script Shell

Afficher le shell par défaut du système
echo $ SHELL

[root@single conf]# echo $SHELL
/bin/bash

Parce que bash est facile à utiliser et gratuit, il est largement utilisé dans le travail quotidien. Dans le même temps, bash est également l'interpréteur de script shell par défaut pour la plupart des systèmes Linux.

Afficher les shells pris en charge par le système
cat / etc / shells

[root@single conf]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

Spécification de la coque

  1. Le nom de fichier du script shell a une extension de .sh, par exemple: test.sh
  2. Les fichiers de script Shell doivent recevoir l'autorisation d'exécution (le fichier qui vient d'être créé n'a pas l'autorisation d'exécution)
    chmod u + x test.sh
  3. Un script Shell standard indiquera quel interpréteur est utilisé pour exécuter le contenu du script sur la première ligne. La programmation de cette ligne sous Linux est généralement: #! / Bin / bash
  4. Méthode d' exécution du script
    Shell./test.sh

commander

Entrée / sortie de la console

	echo [-n] "..."		控制台输出
	read VAR			控制台输入

Cas:

#!/bin/bash
echo -n  "please enter your name => "
read NAME
echo "your name is $NAME"

résultat:

[root@single shell]# ./test.sh 
please enter your name => jun
your name is jun

Annotation

	单行:#...
	多行::<<!...!

Cas:

#!/bin/bash
:<<!
echo -n  "please enter your name => "
read NAME
echo "your name is $NAME"
!
echo "break"
#echo -n "hello shell"

résultat:

[root@single shell]# ./test.sh 
break

variable

Format de la syntaxe: nom de la variable = valeur de la variable

•数字、字母、下划线、一般字母大写
•值可以是一个数字、文本、文件名、设备或任何其他类型的数据,不可以是指针
•shell可以创建,分配和删除变量

Type de variable

Types de signification
Variable locale Les variables locales sont définies dans des scripts ou des commandes et ne sont valides que dans l'instance actuelle du shell. Les programmes démarrés par d'autres shells ne peuvent pas accéder aux variables locales.
Variable d'environnement Tous les programmes, y compris ceux démarrés par le shell, peuvent accéder aux variables d'environnement, et certains programmes ont besoin de variables d'environnement pour assurer leur fonctionnement normal. Vous pouvez utiliser la commande set pour afficher les variables d'environnement actuelles
variables shell Variables spéciales définies par le programme shell. Certaines des variables du shell sont des variables d'environnement et d'autres sont des variables locales, ces variables garantissant le fonctionnement normal du shell.

Utilisation variable

  1. Variable locale
创建
NAME="henry"
AGE=18
使用
echo "$NAME,$AGE"
echo $NAME
取消
unset NAME
常量
readonly NAME

Cas:

[root@single shell]# NAME="JUN"
[root@single shell]# AGE=22
[root@single shell]# echo "$NAME,$AGE"
JUN,22
[root@single shell]# unset NAME
[root@single shell]# echo "$NAME,$AGE"
,22

[root@single shell]# NAME="jun"
[root@single shell]# readonly NAME
[root@single shell]# echo $NAME
jun
[root@single shell]# NAME="kun"
-bash: NAME: readonly variable
  1. Variable d'environnement

Variables d'environnement globales: accès entre instances
Variables d'environnement temporaires: variables d'environnement temporaires valides pour la connexion en cours

export -p		#列出所有环境变量
export -n VAR	#删除环境变量VAR
export VAR		#添加环境变量VAR
[root@single shell]# export -p
declare -x CLASS_PATH=".:/opt/software/jdk180/lib/tools.jar:/opt/software/jdk180/lib/dt.jar"
declare -x HADOOP_HOME="/opt/software/hadoop/hadoop260"
declare -x HBASE_HOME="/opt/software/hadoop/hbase120"
···
[root@single shell]# export jun
[root@single shell]# export -p
···
declare -x jun
[root@single shell]# export -n jun
[root@single shell]# export -p
···
  1. variables shell
symbole signification
$$ Numéro de processus shell actuel
0 $ Le nom de fichier du script actuel
$ n Paramètres de script
$ # Nombre de paramètres de script
$ * Ensemble complet de paramètres de script
$ @ Collection indépendante de paramètres de script
$? La valeur d'état du résultat de l'exécution de la commande précédente ou la valeur de retour de la fonction: 0 signifie normal, 1 signifie échoué
$! Le numéro de processus de la dernière commande d'arrière-plan
	$* 和 $@ 的区别
不加"两者相同
加上"则$*代表整体,而$@代表个体

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48482704/article/details/110383862
conseillé
Classement