当前位置:网站首页>Shell programming core technology "three"
Shell programming core technology "three"
2022-07-04 19:24:00 【Wu_ Candy】
Today I will share how to write a Shell Script , And master the preparation Shell The necessary knowledge of script .
Want to write a Shell Script , Necessary knowledge required : 1、 The first thing you need to master is annotation , Annotate with # start , Used to increase script readability ; 2、 The second is parameters , We need to pass in parameters to the script and parse it ; 3、 Finally, function encapsulation , And master how the script is executed and debugged .
notes
1、 First, let's look at the notes :
Use vim Create a file , You can also use it vs code Wait for other editors ,vs code Syntax highlighting is supported , It's also very good , Input vim /tmp/test_001.sh Instruction created test_001.sh file .
2、 Next, start writing scripts :
Press i Key to enter edit mode , And enter comments # this is a test script! Used to tell you what this script is for , Of course, comments are not necessary , Just for readability , meanwhile Shell And will not execute comment statements .
Parameters
When the script starts executing , We need to master the default parameter resolution rules of the system . When passing a parameter to a script , How is it parsed ?
1、$0 Indicates the program being executed , That is, the current script ;
2、1、2 Respectively represents the transmitted number 1 And the first 2 Parameters ,Shell Only supported by default 9 Parameters , If you need to support more parameters, you can use shift;
3、@、* Represents all the parameters , But does not contain
4、${#*}、${#@} Indicates the number of parameters ;
5、{*:1:3}、{*:
interpretative statement :001、@ And * The difference is as follows :
Use command :sh /tmp/test_difference.sh The results are as follows :
You can see that without quotation marks , Both return the parameters passed in , But with quotation marks , here * Take the parameter as a whole string ( Single string ) return ,@ Return each parameter as a string
002、${#*} And ${#@} Can be used as follows :
The results are as follows :
It can be seen from the results that both are the number of parameters
003、{*:1:3}、{*:
As shown in the figure above , You know :{*:1:3} It means taking the front 3 The value of parameters ,{*:
Next, continue to write scripts :
As shown in the figure , And print a0=0、a1=1 a2=2, as well as @ and *. The command I use to execute the script is :sh /tmp/test_001.sh, In the execution result 0 Is the current file name , But at this time, the parameter has no value , The number of parameters is empty .
We enter parameters a,b Pass it to the script , You can see that the first parameter in the output result is a, The second parameter is b, This is the parsing rule of parameters .
function
Finally, the function , The function is named () Heel {} The enclosed structure consists of , Function can realize some function encapsulation , At the same time, the function also supports parameter parsing logic similar to script .
As shown in the figure above , Define a name :helloworld Of function , Pass through in function if Statement to determine the first parameter $1 Is it equal to python, If equal to, print python auto tester. And then call helloworld function , And pass in a name :python Parameters of , System printout python auto tester.
We can also encapsulate the above functions directly input on the command line , Put in shell Script and call , adopt elif Judge $1 Is it equal to java, If it is equal to java Just print java auto tester.
The execution result of the calling function is as follows :
Execute and pass in python Parameters , You can see the final print python auto tester.
If the passed parameter is :java when , Then print out :java auto tester
Friendship tips :“ The way of immeasurable testing ” Original works , Welcome to exchange , It is forbidden for a third party to reprint the article without displaying its source .
边栏推荐
猜你喜欢
[uniapp] uniapp development app online Preview PDF file
Torchdrug tutorial
Wireshark网络抓包
Uni app and uviewui realize the imitation of Xiaomi mall app (with source code)
神经网络物联网应用技术就业前景【欢迎补充】
Nebula importer data import practice
Process of manually encrypt the mass-producing firmware and programming ESP devices
Learning path PHP -- phpstudy "hosts file does not exist or is blocked from opening" when creating the project
基于lex和yacc的词法分析器+语法分析器
Basic tutorial of scala -- 16 -- generics
随机推荐
页面元素垂直水平居中、实现已知或者未知宽度的垂直水平居中。
26. 删除有序数组中的重复项 C#解答
基于unity的愤怒的小鸟设计
SSL证书续费相关问题详解
Is the securities account opened by qiniu safe?
与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
BI技巧丨权限轴
性能优化之关键渲染路径
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
指定输出的字符集
Li Chi's work and life summary in June 2022
模板_大整数减法_无论大小关系
[uniapp] uniapp development app online Preview PDF file
2019年蜀山区第十五届青少年信息学竞赛
Bi skills - permission axis
Using FTP
ftp、sftp文件传输
The kth largest element in the array
Detailed explanation of issues related to SSL certificate renewal
1672. 最富有客户的资产总量