Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > Wie sollten Shell-Skripte verwendet werden?

Wie sollten Shell-Skripte verwendet werden?

PHP中文网
Freigeben: 2017-06-21 14:17:35
Original
3760 Leute haben es durchsucht

Shell-Skript verwendet die Befehlsinterpretationsfunktion von Shell, um eine Nur-Text-Datei zu analysieren und dann diese Funktionen auszuführen. Man kann auch sagen, dass Shell-Skript eine Sammlung einer Reihe von Befehlen ist.
Shell kann direkt unter Win/Unix/Linux verwendet werden und kann eine große Anzahl interner Systemfunktionen aufrufen, um Programme zu interpretieren und auszuführen. Wenn Sie sich mit Shell-Skripten auskennen, wird es uns die Bedienung des Computers erleichtern und viel Zeit sparen.

Shell-Anwendungsszenarien

Was Shell tun kann

  • Einige komplexe Befehle vereinfachen (normalerweise müssen wir den Github-Code möglicherweise einmal übermitteln). Es gibt viele Schritte, aber sie können mithilfe von Shell zu einem Schritt vereinfacht werden)

  • Sie können einige Skripte schreiben, um automatisch das neueste SDK (Bibliothek) in einem Projekt zu ersetzen

  • Automatisches Packen, Kompilieren, Veröffentlichen und andere Funktionen

  • Leere Ordner auf der Festplatte bereinigen

  • Kurz gesagt, Sie kann alle regulären Live-Skripte ausprobieren

Was Shell nicht kann

  • Wenn genaue Berechnungen erforderlich sind

  • Spracheffizienz ist erforderlich. Wenn sie hoch ist.

  • Wenn einige Netzwerkvorgänge erforderlich sind.

  • Kurz gesagt, Shell kann schnell ein Skript entwickeln Vereinfacht den Entwicklungsprozess und kann nicht verwendet werden. Alternative Hochsprache


Funktionsweise von Shell

Shell kann als Skriptsprache bezeichnet werden, da dies nicht der Fall ist erfordert selbst eine Kompilierung, wird aber interpretiert. Nachdem der Compiler es interpretiert, kompiliert und ausgeführt hat, gibt es einen zusätzlichen Interpretationsprozess, sodass die Effizienz etwas schlechter ist als bei herkömmlichen direkt kompilierten Sprachen.


Das einfachste Skript:

#!/bin/bashecho "Hello World"
Nach dem Login kopieren

Öffnen Sie einfach das Textbearbeitungstool, bearbeiten Sie es wie oben und speichern Sie es dann als test.sh

Führen Sie das Skript aus:

1. cd 到该目录下2. chmod +x ./test.sh  #给脚本权限3. ./test.sh  #执行脚本
Nach dem Login kopieren

Rendering 1

Auf diese Weise haben wir Das erste und einfachste Skript wurde geschrieben. Jetzt können wir versuchen, einige komplexe Skripte zu schreiben.


Variablen in der Shell

myText="hello world"muNum=100
Nach dem Login kopieren

Hier ist zu beachten, dass vor und nach „=" keine Leerzeichen stehen dürfen, und die Benennungsregeln sind die gleichen wie in anderen Sprachen.

Zugriff auf Variablen

myText="hello world"muNum=100echo $myTextecho muNum
Nach dem Login kopieren

Wenn Sie auf Variablen zugreifen möchten, müssen Sie $ verwenden, andernfalls erfolgt die Ausgabe im Klartext, wie in der Abbildung unten gezeigt .


Rendering 2

Vier Rechenoperationen in Shell

Beispielprogramm

#!/bin/bashecho "Hello World !"a=3b=5val=`expr $a + $b`echo "Total value : $val"val=`expr $a - $b`echo "Total value : $val"val=`expr $a \* $b`echo "Total value : $val"val=`expr $a / $b`echo "Total value : $val"
Nach dem Login kopieren

Hier ist zu beachten, dass beim Definieren von Variablen keine Leerzeichen vor und nach „=" stehen dürfen, bei der Ausführung von vier arithmetischen Operationen jedoch Leerzeichen davor und danach stehen müssen Die Operationssymbole Multiplikation müssen maskiert werden.


Rendering 3.png

Andere Operatoren =, ==, !=,! , -o, -a

Beispielprogramm

a=3b=5val=`expr $a / $b`echo "Total value : $val"val=`expr $a % $b`echo "Total value : $val"if [ $a == $b ]then
   echo "a is equal to b"fiif [ $a != $b ]then
   echo "a is not equal to b"fi
Nach dem Login kopieren

Rendering 4

Relationale Operatoren

#!/bin/shBeispielprogramm

a=10b=20if [ $a -eq $b ]then
   echo "true"else
   echo "false"fiif [ $a -ne $b ]then
   echo "true"else
   echo "false"fiif [ $a -gt $b ]then
   echo "true"else
   echo "false"fiif [ $a -lt $b ]then
   echo "true"else
   echo "false"fiif [ $a -ge $b ]then
   echo "true"else
   echo "false"fiif [ $a -le $b ]then
   echo "true"else
   echo "false"fi
Nach dem Login kopieren

Rendering 5

字符串运算符





字符串

#!/bin/shmtext="hello"  #定义字符串
mtext2="world"mtext3=$mtext" "$mtext2  #字符串的拼接echo $mtext3  #输出字符串echo ${#mtext3}  #输出字符串长度echo ${mtext3:1:4}  #截取字符串
Nach dem Login kopieren

效果图6

数组

#!/bin/sharray=(1 2 3 4 5)  #定义数组
array2=(aa bb cc dd ee)  #定义数组
value=${array[3]}  #找到某一个下标的数,然后赋值echo $value  #打印
value2=${array2[3]}  #找到某一个下标的数,然后赋值echo $value2  #打印
length=${#array[*]}  #获取数组长度echo $length
Nach dem Login kopieren

效果图7

输出程序

echo

#!/bin/shecho "hello world"  echo hello world  

text="hello world"echo $textecho -e "hello \nworld"  #输出并且换行echo "hello world" > a.txt  #重定向到文件echo `date`  #输出当前系统时间
Nach dem Login kopieren

效果图8

printf

同c语言,就不过多介绍了


判断语句

  • if

  • if-else

  • if-elseIf

  • case

#!/bin/sha=10b=20if [ $a == $b ]then
   echo "true"fiif [ $a == $b ]then
   echo "true"else
   echo "false"fiif [ $a == $b ]then
   echo "a is equal to b"elif [ $a -gt $b ]then
   echo "a is greater than b"elif [ $a -lt $b ]then
   echo "a is less than b"else
   echo "None of the condition met"fi
Nach dem Login kopieren
效果图9

test命令

test $[num1] -eq $[num2]  #判断两个变量是否相等
test num1=num2  #判断两个数字是否相等
Nach dem Login kopieren

 

for循环
#!/bin/shfor i in {1..5}doecho $idonefor i in 5 6 7 8 9doecho $idonefor FILE in $HOME/.bash*do
   echo $FILEdone
Nach dem Login kopieren
<code class="bash"><span class="hljs-meta"><br/><img src="https://img.php.cn/upload/article/000/000/001/e287dce1bca30a9896dc8bd2ecb0e156-15.png" alt=""/></span></code>
Nach dem Login kopieren
效果10

while循环

#!/bin/shCOUNTER=0while [ $COUNTER -lt 5 ]doCOUNTER=`expr $COUNTER + 1`echo $COUNTERdoneecho &#39;请输入。。。&#39;echo &#39;ctrl + d 即可停止该程序&#39;while read FILMdoecho "Yeah! great film the $FILM"done
Nach dem Login kopieren

以上是while循环的两种用法,第一种是比较常规的,执行循环,然后每次都把控制的数加1,就可以让while循环有退出的条件了。

第二种是用户从键盘数据,然后把用户输入的文字输出出来。


跳出循环

break  #跳出所有循环
break n  #跳出第n层f循环
continue  #跳出当前循环
Nach dem Login kopieren

函数

#!/bin/shsysout(){echo "hello world"}

sysout
Nach dem Login kopieren

定义一个没有返回值的函数,然后调用该函数

#!/bin/shtest(){

    aNum=3anotherNum=5return $(($aNum+$anotherNum))
}
test
result=$?echo $result
Nach dem Login kopieren

定义一个有返回值的函数,调用该函数,输出结果


效果图11
#!/bin/shtest(){echo $1  #接收第一个参数echo $2  #接收第二个参数echo $3  #接收第三个参数echo $#  #接收到参数的个数echo $*  #接收到的所有参数
}

test aa bb cc
Nach dem Login kopieren

定义了一个需要传递参数的函数


效果图12

重定向

$echo result > file  #将结果写入文件,结果不会在控制台展示,而是在文件中,覆盖写
$echo result >> file  #将结果写入文件,结果不会在控制台展示,而是在文件中,追加写echo input < file  #获取输入流
Nach dem Login kopieren


写一个自动输入命令的脚本

自动提交github仓库的脚本

#!/bin/bashecho "-------Begin-------"git add .
git commit -m $1echo $1git push origin masterecho "--------End--------"
Nach dem Login kopieren

 


效果图13

以上便是我对shell知识的总结,欢迎大家点心,评论,一起讨论~~

 脚本程序

Das obige ist der detaillierte Inhalt vonWie sollten Shell-Skripte verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage