shell学习整理笔记

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:05   684   0
<h3>1.shell脚本是一个以.sh问扩展名的文件。</h3>
<h3>“#!”是一个约定的标记,是告诉系统需要什么解释器来执行,echo命令用于向窗口输出文本。</h3>
<h3>如:</h3>
<h3><span style="color:#77c94b;">#!/bin/bash</span></h3>
<h3><span style="color:#77c94b;">echo &#34;Hello world!&#34;</span></h3>
<h3>将代码保存为test.sh ,并cd到保存目录:</h3>
<h3 style="margin-left:28px;"><span style="color:#77c94b;">chmod &#43;x ./test.sh //是脚本拥有执行权限</span></h3>
<h3 style="margin-left:28px;"><span style="color:#77c94b;">./test.sh //执行脚本</span></h3>
<h3><span style="color:#df402a;">注意:一定要写成./test.sh,而不是test.sh。</span></h3>
<h3> </h3>
<h3>1.1 定义变量</h3>
<h3>定义变量时,变量名不加$符号,如:<span style="color:#77c94b;">varriableName&#61;“value”</span></h3>
<h3><span style="color:#df402a;">注意:变量名和等号之间不能有空格</span></h3>
<h3> </h3>
<h3>1.2 使用变量</h3>
<h3>使用一个定义过的变量,只要在变量名前面加$符号即可。如:</h3>
<h3><span style="color:#77c94b;">your_name&#61;&#34;jason&#34;</span></h3>
<h3><span style="color:#77c94b;">echo $your_name</span></h3>
<h3><span style="color:#77c94b;">echo ${your_name}</span></h3>
<h3><span style="color:#df402a;">注意:变量名外面的花括号是可选的,加花括号的目的是让解释器识别变量的边界</span></h3>
<h3> </h3>
<h3>1.3 只读变量</h3>
<h3>使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。 如:</h3>
<h3><span style="color:#77c94b;">#!/bin/bash</span></h3>
<h3><span style="color:#77c94b;">myUrl&#61;&#34;http://www.baidu.com&#34;</span></h3>
<h3><span style="color:#77c94b;">readonly myUrl</span></h3>
<h3><span style="color:#77c94b;">myUrl&#61;&#34;http://www.sohu.com&#34;</span></h3>
<h3> </h3>
<h3>1.4 删除变量</h3>
<h3>使用unset命令可以删除变量,如:<span style="color:#77c94b;">unset variable_name</span></h3>
<h3> </h3>
<h3>2.变量类型</h3>
<h3>一、局部变量:<span style="color:#e66c00;">局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他的shell启动的程序不能访问局部变量</span></h3>
<h3>二、环境变量:<span style="color:#e66c00;">包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要时候shell脚本也可以定义环境变量</span></h3>
<h3>三、shell变量:<span style="color:#e66c00;">shell变量时有shell程勋设置的特殊变量,shell变量中又一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行</span></h3>
<h3> </h3>
<h3>2.1 特殊变量</h3>
<h3 style="margin-left:56px;">$0 当前脚本的文件名</h3>
<h3 style="margin-left:56px;">$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数,例如,第一个参数是$1,第二个$2</h3>
<h3 style="margin-left:56px;">$# 传递给脚本或函数的参数的个数</h3>
<h3 style="margin-left:56px;">$* 传递给脚本或者函数的所有参数</h3>
<h3 style="margin-left:56px;">$&#64; 传递给脚本或函数的所有参数,被双引号“”包含时,与$*稍有不同</h3>
<h3 style="margin-left:56px;">$? 上个命令的退出状态,或函数的返回值</h3>
<h3 style="margin-left:56px;">$$ 当前shell进程ID</h3>
<h3> </h3>
<h3>2.2 命令行参数</h3>
<h3><span style="color:#e66c00;">运行脚本时传递给脚本的参数称为命令行参数,命令行参数用$n表示</span>,如:$1表示第一个参 数,$2表示第二个参数</h3>
<h3 style="margin-left:28px;">如:</h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">#!/bin/bash</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">echo &#34;file name:$0&#34;</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">echo &#34;first paramater:$1&#34;</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">echo &#34;second parameter:$2&#34;</span></h3>
<h3> </h3>
<h3>$*和$&#64;的区别</h3>
<h3 style="margin-left:28px;"><span style="color:#b19067;">$*和$&#64;都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1,$2的形式输出所有参数但是当它们被双引号“”包含时,“$*”会将所有的参数作为一个整体,以“$1 $2”的形式输出所有参数;“$&#64;”会将各个参数分开,以$1,$2的形式输出所有参数</span></h3>
<h3> </h3>
<h3>例子:</h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">#!/bin/bash</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">a&#61;10</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">echo -e &#34;Value of a is $a \n&#34;</span></h3>
<h3 style="margin-left:56px;"><span style="color:#77c94b;">运行结果:Value of a is 10</span></h3>
<h3 style="margin-left:56px;"><span style="color:#df402a;">这里的-e表示对转义字符进行替换。</span></h3>
<h3 styl
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP