Shell Study-10day - Shell Flow Control Anweisung für

1. Kontrollflussanweisung für

( 1) Für das Anweisungsformat

für Variable in Parameterliste 
tun 
    Befehl 
getan

oder

für Variable in der Parameterliste; 
    Befehl 
ausführen

Hinweis: Geben Sie jedes Mal, wenn Sie nur die Daten einer Schleifenliste erfassen, diese an den folgenden Codeblock weiter.

( 2) Beispiele für Aussagen

A , direkter Wert

[root @ test ~] # vi für-1.sh 
#! / bin / bash 
für i in einem b c d e 
do 
        Echo-Test ist $ i 
erledigt 
[root @ test ~] # sh für-1.sh-  
Test ist ein 
Test ist b- 
Test ist c 
Test ist d 
Test ist e 
[root @ test ~] #

B. Wert in Variable

[root @ test ~] # vi for-2.sh 
#! / bin / bash 
list = "a b c d e" 
für i in $ list 
do  
        echo test ist $ i 
done 
[root @ test ~] # sh for-2.sh  
test ist ein 
Test ist b 
Test ist c 
Test ist d 
Test ist e 
[root @ test ~] #

C , nimm den Wert aus dem Befehl

[root @ youxi1 ~] # vim d.sh 
#! / bin / bash 
for i in `Kopf -5 / etc / passwd` 
tun 
 echo $ i 
getan 
[root @ Test ~] # sh for-3.sh  
root: x : 0: 0: root: / root: / bin / bash 
bin: x: 1: 1: bin: / bin: / sbin / nologin 
daemon: x: 2: 2: daemon: / sbin: / sbin / nologin 
adm: x: 3: 4: adm: / var / adm: / sbin / nologin 
lp: x: 4: 7: lp: / var / spool / lpd: / sbin / nologin 
[root @ test ~] #

( 3) Benutzerdefiniertes Shell-Separator

Standardmäßig verwendet die Basis-Shell Leerzeichen, Tabulatoren und Zeilenumbrüche als Trennzeichen. Angepasst als Trennzeichen durch IFS .

Geben Sie ein einzelnes Zeichen als Trennzeichen an:

IFS =: #Use: Doppelpunkt als Trennzeichen

IFS kann ein einzelnes Zeichen als Trennzeichen angeben, IFS =: (unter Verwendung eines Doppelpunkts als Trennzeichen); IFS kann auch mehrere Zeichen als Trennzeichen angeben, IFS = \ n:; (unter Verwendung eines Backslash, n, Doppelpunkt, Semikolon als Separator). Hinweis: In IFS sind $ '\ n' und $ '\ t' Zeilenumbrüche und Tabulatoren.

A. Beispiel 1

[root @ test ~] # vim a.sh 
#! / bin / bash 
list = "a1 a2 b1 b2 \" Hallo Welt \ "" 
for i in $ Liste 
tun 
 
 echo $ i 
getan 
[root @ Test ~] # sh a .sh 
a1 
a2 
b1 
b2 
"Hallo 
Welt"

B. Geben Sie \ n Wagenrücklauf als Trennzeichen der for- Anweisung an

[root @ test ~] # vi for-4.sh 
#! / bin / bash 
IFS = $ '\ n' 
für i in `Kopf -2 / etc / passwd` 
tun 
echo "$ i" 
getan 
[root @ test ~ ] # sh for-4.sh  
root: x: 0: 0: root: / root: / bin / bash 
bin: x: 1: 1: bin: / bin: / sbin / nologin 
[root @ test ~] #

( 4) Zur Angabe in C-Sprache

A. Grammatikformat

für ((i = 0; i <10; i ++)) 
keine 
Befehle 
getan

B. Einzelne variable Schleife

[root @ test ~] # vi for-5.sh  
#! / bin / bash 
für ((i = 1; i <= 3; i ++)) 
do 
echo num ist $ i 
done 
[root @ test ~] # sh für -5.sh  
num ist 1 
num ist 2 
num ist 3 
[root @ test ~] #

C , zum Verschachteln (multivariat)

[root @ test ~] # vi for-6.sh 
#! / bin / bash 
für ((a = 1, b = 5; a <6; a ++, b--)) 
do 
echo num ist $ a - $ b 
done 
[root @ test ~] # sh für-6.sh  
num ist 1 - 9 
num ist 2 - 8 
num ist 3 - 7 
num ist 4 - 6 
num ist 5 - 5 
[root @ test ~] #

D , Dreieck drucken

[root @ test ~] # vi für-7.sh 
#! / bin / bash 
für ((i = 1; i <5; i ++)); do 
  für ((j = 1; j <= i; j ++)) ; 
     echo -n '*' 
  erledigt 
  echo -e "\ n" 
erledigt 
[root @ test ~] # sh für-7.sh  
* 
 
** 
 
*** 
 
**** 
 
[root @ test ~] #

-e Interpretiere die maskierten Zeichen  
\ t Registerkarte 
\ n Wagenrücklauf 
\ b lösche das vorherige Zeichen 
\ a ertönt ein Alarm 
\ 033 [32m $ var \ 033 [0m 32 --- grün 31 --- rot- 
n kein Zeilenvorschub


Persönliche öffentliche Nummer:

image.png

Ich denke du magst

Origin blog.51cto.com/13440764/2575382
Empfohlen
Rangfolge