shell简介
1.Shell是Unix的脚本语言,是与 Unix/Linux 交互的工具,shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度
2.Shell是系统命令+程序逻辑的的集合
3.Shell脚本和编程语言很相似
4.shell还不止一种?
常见的有四种:bash、sh、csh、ksh
我们学的是bash(全称:Bourne Again shell)
因为大多数Linux/UNIX默认是bash
5.怎么查看用户使用的是哪种shell?查看/etc/passwd文件就OK了 ?
我的系统的root用户的shell是bash
用户可以指定使用的shell类型,nologin代表用户不能使用shell和登陆
shell环境搭建
环境选择
shell环境在Linux系统上,首先我们需要一台Linux系统。这里你可以用虚拟机或者真实机器装一台Linux系统,发行版任意,可以是Centos、Redhat、Ubuntu、ArchLinux等等,你甚至可以在安卓手机上下载一个shell软件。
缩进设置
Linux的一个Tab键默认缩进8个空格,这里设置成4个,为了编码方便,以后每次缩进就可以按Tab就行了,Shell对缩进其实没有要求,这样设置纯属为了代码格式简洁清晰
打开配置文件
vim /etc/vimrc 或 vim ~/.vimrc
前者时系统范围配置文件,后者是个人配置文件
设置tab为4个空格
set ts=4
设置shift+>为4个空格
set smartindent
set shiftwidth=4
关闭当前连接,重新登录Linux后生效
编码规范
我们一般是windows,这样就会有很多问题,因为windows的换行符是\r\n,Linux的换行符是\n,Tab和空格也要注意,因此采用专业的编辑器很重要
1.编辑器:Notepad++,设置换行符为Unix,Tab设置为4个空格
(设置换行符没有设置为Unix,要使用dos2unix filename命令,把文件格式化成unix格式(把换行符换成\n))
2.从编辑器粘贴到vi编辑器
直接复制粘贴会有缩进错乱的问题
在vi编辑器输入:set paste再复制粘贴就不会出现缩进混乱的问题了
本教程环境
为了方便,本教程使用云服务器,每次直接使用远程登录工具连接登录就行了
美化cat命令
由于只有vim命令可以看彩色的内容,为了看彩色内容用vim命令还得进入vi退出vi太麻烦,因此用彩色版的cat
wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
# 如果下载不下来用代理,你懂得,然后其他的不是amd64位发行版本的看这里
https://github.com/jingweno/ccat/releases
#接着解压
tar -zxvf linux-amd64-1.1.0.tar.gz
#移动到二进制文件目录
cd linux-amd64-1.1.0
sudo mv ccat /usr/local/bin
#接着给这个文件赋予可执行权限
sudo chmod +x /usr/local/bin/ccat
之后就可以和cat一样执行命令了
现在ccat就是彩色的cat。
如果你觉得ccat比cat好,而且我以后不想使用cat了,想用ccat来代替cat,那么我就可以设置一个别名
vim ~/.bashrc
alias cat='ccat'
source ~/.bashrc
第一个shell程序
代码
vi t1.sh(文件名任意取,后缀可以不为.sh) #t1.sh在/tmp目录下
#!/bin/bash
echo "hello shell"
执行方式
source、sh、bash、./有什么区别
source 在当前shell内去读取、执行a.sh,而a.sh不需要有"执行权限",source命令可以简写为"." sh/bash 打开一个subshell去读取、执行a.sh,而a.sh不需要有"执行权限"。通常在subshell里运行的脚本里设置变量,不会影响到父shell的。 ./ 打开一个subshell去读取、执行a.sh,但a.sh需要有"执行权限"。可以用chmod +x添加执行权限。这里使用文件名直接执行(路径可以是相对路径可以是绝对路径,一般用./)
父子shell
父shell
我们登录服务器后,默认在一个shell中,默认初始化一堆变量给当前用户,这和windows的默认系统变量一样
子shell
Linux的shell和windows的cmd一样,都是一个软件,或者说一个程序,子shell就是子程序,子程序默认继承或者说复制父进程的所有变量子进程的变量和父进程的变量是无关的,父进程的变量影响子进程,子进程不影响父进程
如何进入子shell?
方式一:sh/bash filename或者./ filename
方式二:在终端,命令bash或者sh可进入子shell
#!/bin/bash
#!/bin/bash什么作用?解释器
上图可知,shell脚本有两种执行方式,sh和bash是一种(centos系统下,sh是bash的软连接,软连接类似于windows下的快捷方式),./和完整的.sh文件路径是另一种,这两种执行方式的区别在于,前者可以省略#!/bin/bash。
#!/bin/bash,后者则不可省略,因为后者通过#!/bin/bash调用bash解释器。前者的sh .sh的sh已经显式的指定了解释器;但是共同点是两者都要在.sh所在的目录操作(完整的.sh文件路径除外)。
so over!!
注释
单行注释 #注释
多行注释(BLOCK为字符或数字) :<< BLOCK 注释 BLOCK
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3QAAAAzCAIAAABQR92lAAAFLElEQVR4nO3d3ZWiMAAGUOqxFSqhEAqhDvvYdtwHHSAQCCAYxHvPPuyMIT/4MN9JICn+/ftXDJX1/aWpbqNP59yqZuul36Os7031VgEAgCt6PB5FLFwyS7gEAIgRLlfrJnUnZmeTBQAArkq4BABgN8IlAAC7ES4BANiNcAkAwG6+N1xu3ywJAICDTIXLvNGtrBPNlnXXsf7/247nD5wL9/ss63tdPkvX5Y7N73ofnpXt2r9evSf4sgCAvcyEy4x/8hOtl3WYdIabSubt/ECiM69Qeci+mG/fhzYg13V9RLgsipN9WQDAu74xXA6z5Wja71R5JRkum+p21nB5SFUfqxkAyGBluGynsp5J6G/xfDCnFewiHpvvmi4QbkAeLdSPkt3acyRcduvS/Q+7S0Zr6Uct/c4H5aa6bV8V78Z4v9fla419UHn8PqzzVgT8VCcBgPw2zVw+P6yaVxAIk1H767bsYE4uWSDRetvcrWru0WhW1vemaboqBi1Go9xoOnQvU2OZiNFr5i/DcY0fjEzdhx1GcapOAgD5bQ2XEzEoOgPXrytZIN36XxVdVZFwmUiTsRbXRZq/CdBk5Fo6lg3ZrWrmm0/fh8XeCpef6iQAkN/mcBn/8x/PBb0HCpMF0q0vCpfh5eO8Eg7hVjWrpgy7WdteNJpIUYvGsjm79VecY7Oxqfuw1G7L4kd2EgDIb/uy+OQHE/lqWYEFrbfho92DaEO4DLPgW3EmMYcZH8stCFz9VfHt77aMMv9ZwuWgosM6CQDkt2+4/OjMZRFGtPAxzgV5pY05hz1uGe/M6MPizXTbE9ZzxnBZHNhJACC/ncPlJ565TIfBpXnlOXmZeijwTak7WZfFtnAZ+xZyhct2N/SsnQQA8ts5XBajRw/HjzMmCxTRV4x7ZVLpcnFeeWWiQ6PM3J1865HL0WtVozv5sXDZvvk+KvPRTgIA+a0Ll/Htc0ZJIHieMBZDkwUGTQ270m5C1BZt+9C77llgYum815Njk8yR4fK1IVTsTq68D9NtLPnCEzOXB3cSADiRc57Qs0A/hmw+2+boJfGimL+Tf58N9hUHAPhWM+FyYtbwQtbuQLS68uvfQgCAwFS4/AXHviUOAPCDfi9cjneYPGzyEgDg1/xeuAQA4DDCJQAAuxEuAQDYjXAJAMBuhEsAAHbTC5ftKSvvbcoYbG4eqypZ4Fg/MkwAgBwGM5c7HsyTrCrjIUA/MkwAgE8TLo+uSrgEAH5IPFx2S7rjE2y6gyHnV3zfSl1BI5tO0elvlV6Xg8O7zzJMAICLiYTLpunSUNXch6ks/MWwQFB0Y+oa1FnWqw/RCWt45sRhuMw+TACA6xmHyzBF3aqm93PwQ/fLaHjamLpusTbWBrSqmS+ff5gAAJeUeuayn7qiua8obvHYtTF1xdso6y2Tl5ML6/mHCQBwSWvD5YSpPLg6dU1ctT5cDq4Oe5h9mAAA17QmXBaD12LmZZ65nK02/zABAC5pVbhcFbvyPXMZS6JrwuUnhgkAcEnrwuXfq9tBVhotOk9UtbjA4HWcW9Wsm7Z8vh3eu2RUwymGCQBwPePjH7ttHfsPHw735Zl4EnHqecU2XiULRJpYuyD+jHP9Kvo1nGmYAAAXM5i5BACA7YRLAAB2I1wCALAb4RIAgN0IlwAA7Ea4/E6P1D8AgByEy+8kXAIApyRcfifhEgA4pe8Nl91m6L+4M7lwCQCc0lS4zBvdlpyp2JYIj2p8dTx/4Owd0jPXmdc55tEj1WcIlwDAKT0ej/9vq2IN4OUTLgAAAABJRU5ErkJggg==" alt="" />
变量
为什么使用变量
1.代码简洁:当某个数据被频繁使用或者很长的时候,最好使用变量代替
#!/bin/bash
a='hello shell' # 字符串可以使用单引号或者双引号
b="hello shell"
echo $a # 引用变量的结果:使用美元符+变量名
echo $b ####输出
[root@hy shellScripts]# sh t1.sh
hello shell
hello shell
2.获取命令的输出
`cmd` 或者$(cmd)可获得命令的输出结果,需要注意的是`cmd`兼容性更强,部分unix系统可能不能正常使用$(cmd)
#!/bin/bash
a=`pwd`
b=`ls`
echo $a
echo $b ###输出
[root@hy shellScripts]# sh t1.sh
/root/wulei/shellScripts
t1.sh
变量定义
1.系统自带变量是大写
2.自定义变量:
变量名可以是字母、数字(不能是首字符)、下划线的组合
变量赋值时,等号的两边不能留有空格(否则报语法错误)
等号右边和数据之间有空格
变量使用
1.$变量名
2.${变量名} # 更易于阅读和理解
a=`pwd` # 或者a=$(pwd)
history_command=`ls`
echo $a
echo $history_command
echo ${history_command} ###输出
[root@hy shellScripts]# sh t1.sh
/root/wulei/shellScripts
t1.sh
t1.sh
变量长度
特殊变量列表
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAAESCAIAAACU00EqAAAgAElEQVR4nO2dzbXsJtNG35yUgkPQ1FmwHIfXUhAeE4On34RAHEN/A4GoKgoE3X3+7t17YN/TLUFRAuqhQOf87/F4PB6P/wMAAAAYcmqG/13S4b9P50sqBQAAgCdAOgAAAMACSAcAAABYAOkAAAAACyAdAAAAYAGkAwAAACyAdAAAAIAFkA4AAACwANIBAAAAFkA6AAAAwAJIBwAAAFgA6QAAAAALrEqHf//+848//vjjz7//db/+568/hvj3IR0AfjRl4P/1z82F//79Z3/6AIAfwq10yFrhjjwZ/PNXTx+c5SAdAH411ILBEw9CL+T5JF913omSAPhpLGUd6gzQWzuQdQD4nShLi7/++e8a/s0oVwpB/DBaTwDAN2ZWOvzz1x9//PW3lQ5//2VWGWQdAH4Timr48+9/xehWWqKgtMO17iDnAPBTmZEOZYT/bZYLf/71z79i9N9lHPqZB6QDwE+iOfKk9yHaC+z3//1XJozb0xEA8P24lQ7//FWHd2fDol5yThBlMtApiH5CAukA8AMZnINqB3peWVxKgZQDwA/mvS9n3p6pRDoA/LK4mxXulwgHgB/NnHQY7kWIeYKsA8Dvws0OZasfzMqCrQqAH8t01qE95ugsHJAOAL8L3bMKg0MMQm6gHAB+LisbFlIr2J3L//77b+53QHgTBtIB4MexLB3a+QH5APAzWTzrIHOUtxuVgzxDY8SS0QDw5SxsWFTRUD4VMoITDwA/jrk3LBy9YOeN85c+zMDLmQC/AFNZh0si+AmG62v0A8BPgj9/BQAAAAsgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYAOkAAAAACyAdAAAAYAGkAwAAACyAdAAAAIAFHOkAAAAAMMBKh8en8yWVAgAAwBMgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYAOkAAAAACyAdAAAAYIEF6ZCOPcSPNQIAAAC+OZPSIR37ltHyIYby+X6kl43ok459GwuXGMwF6di1TdbWWmb9xq+kKerGthhu3RHDjcticHzdd0E69lceAQAAwCQz0iEd+7aFmLMOMVzxS4S/fM2LRphaRSjU4dkXEirYOtE7f3QVrKRD/uYJ6eAqhxlXtOKgNVaW3y9WKDsDagIAAN7MhHQo61m7YWHWucNAOGlEW3ETP3OKoNQk8gVD9iMp6RBFsA1RS4d+IG6KtJeG6MTx/UiTRdZQr5RD/ldHOnTyDS88DwAAgD6T0iFHVBWKbGx6PlYNNixKCC3SYbx1MGa4YTHIOpT7nK+UOTGcuRl14Sh54l/zUOmcnjY6SynPxqgKdi8AAODDmDrrcIavfd+H4emt0mFimS63StqwKtP8NQqvb1iUHMV+ROeYqJUO+25jtpEF3SqS+rk0TznZZh3sl9uVMkE2AADAhzH7hkUJ0DUofax0uMM5ClDNmpAOh1zMh9CRDibX0cb9NuvwMCG+OXPRbDs4GYNwXBXqLaGhf2PYUA0AAPDRrL2caXPl30U6PJ11aL7RQb89b2Ba7Z110Fe18b6pxUqLM3fQaoCedBid9+C0AwAAvJnl3+tQo6INehNvJN4ZIbk9APlM1kHemo49xDMcN9JBHcU0yQVzerPNOqhbvHh/+bCrtvLdIx+ozImvECbf9AAAAFhg/VdCXeHuw9+wGPFy1iG35rxMS4eSbuict7jeorDZATdSD16LGCQFVrMOSAcAAPgs5t6wqKv0EjMfj4dSCy+d6f+csw7y4EIIQhXsxxG2/JEfarvvddxKB/+VivNUwr6L5MlEhUgHAAD4BsxlHWTivDlHqLYPXjPCKffZDQtpu3q904Zl972I1pyudGgyEgq9i1MuN/a2/uOsAwAAfFd+6t+wcLIOVxi3RxuuoxnhaEO3Kc1nMeugBIW07ea3WW/+GQphJVkHAAD4an6qdAAAAIAvgT+6DQAAAAsgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYwJEOAAAAAAOsdPhC/QIAAADfHKQDAAAALIB0AAAAgAWQDgAAALAA0gEAAAAWQDoAAADAAkgHAAAAWADpAAAAAAsgHQAAAGABpAMAAAAssCAd0rGH+LFGAADAb0UM+5G+2ohfjw9266R0SMe+ZT5APnSlQwybaH069rb2dOz9S9o7dIm5YY2HYyitPb+q5dRvfEdoc+7IV8dgixP+bqjlX5XFcN5u/9/UduMN9xZdhdPUudrfzZyLXiCGTkGlfcUB9v9Dk9/vmYG7RW/1ETfGYLv0wFyv4Dund/3ZXqbc6zR12fO3jPqsGiUf0LmXPP9sBZ/q+YWxaadaW8jzbsCtzheiiFcnyRnpkI5920LMWYcY3j779aTDOWb7DjsNceTCFdJu+k469m0PYXccvx+pPkAlHfI3b5QOUzeencHvezFsIdZJzc8Pucqh/yxjkNWllFp3rtT+dt70CHrEsG373vQMWUU69v2ItbYJlV8757OMpo/5MN7QaIH9iLYmUWijOW9F6NCfsmnXM00ptt562vNjYnAaXCyRbbOdy/ptvecvev6ptn2252fHZg6+ZyHpCHUufMGhteg5t97qa99xP8+t+rJJ4dNnQjqU6e7TNyx0ZBtEBLl4Hzz7fJloz1YFgV2BXdIhqn6spcPcPD7WP5pTnJ0PXs5dQieFI/cgt0zHKqd693Y5P44t7F7k1/5S5+jxkVmHK8J7ob634naiyO2s9A5j37AOPlWhnpliODuhW/iidBj687Lg1kELnl9uv6cT2rY1k7dy/hNPYtnzi3yN5yfHZmljT/k97wPcOnCruexZJqVDjgnNojU/n8b6J42w1YoSn17Ol4FfPhILDJuAuD4ZblgMsg7lvtkn4hdzWpiqjaUJWSiau85K1QTWpDKs3rTDquffpnt5MeO29gXyU68PoOvKD8s6CEn5eHRH2NlfakXSnCuE3MeS29V6x74xazOCHixVokb77cDsQTvm/CmvViU1z3nK8yvIKr3NCTclUYfmC9LhCc+vNuxLPD85NsvC993SAbcO3Tpn9y1TZx1yrnx3pINc0j8tHnp6RQcRV2odMlj3JlUt5M5pIMS25BCCitUy8t5Lh3QlnWJ3w8AYJXqG6GFi+roSECWppa0puwrZCzk/tbsDR82IbaatXDERmK6HPlv7Arl62bxOGR+Tdag16geiiswy88gWZIW/d+amrqFvysd03DyV8bh8fffYja3T0mHGn3OWCjNnPT/tv01aVlsspUOZ5My/Xs06LHt+rVlf5PnZsZln+b3z1F4Jbri169Zq5Esz0OwbFsVqWZnjsOcedFNpOvYtHMJtw0FZQqnws9adMhM/ZaGUDofsByF0pIOxoSstkqqgGmeUpr7wCOpERrm2Ovx0zxV2i9z05jzhTDvttekEIZeik6qdrX0Bo+gbyb7GUvhMZmdSVV2Vcf08yX2yKhi7awPdyOeaNafsBvuzc9Xq8dbeNiMdJv2pb5CjwZb5Bs+7Ld1D2M2jjfUQjx6kVha/Lh1aezzPf0RPrnyJ52sTL8Odr96wu5CLGnboGX4Vt5avX1y6rL2cqa0xT/aN0iGGMxaJgdoZJcWwEkpvBpQOSt0J18k66IyALks8B7UuaTpKIx1yOfra/GXZCkjpMB80DTFurx1RSCnPdVo4X6Vc67Arr5RSeqR0tEmAqdoXMF7zpcPkPLpSfVuRU7Xs4U7zqoRayV++RMoa+6bCxuhkl+d3kqT1RJOB7MyK/U+EP69Z+RKgj5TSea7sVrZMer7jnXDl82oWtY5AKR0c5fANsw5f7Plnxma5xyn822QdfiG32vXZkyz/XgcdbT5IOpT6es9XayYzZaRj18maawlxoYVJvayVKmXOKK8QNNLB5NRVsVqJms5c53D7ikcjGB3LOlJJyha5J5G8rIP6Riyjcq62WqD6YPlmofYFpqSDf9ub1id3VXtzUvXTvu9KmE3xrOVyTVpXN01qsBGl+Z8D/XkTBIeDp3+Pf0meyJTpl+vqIto9btDx/CJJnG/PNcsxIVKE29ZO6a9Jh0XPP8MXe/5+bJ55yjZ+vCAdcGvXrW9IODwej2d+JZRKVH+OdNAPqWl6deIVq+Xc5vv4TjrUUnK7k8w55TKLKZ0gcXWTkn1qsg5aXtRShTjbrpnMb68nMBon9aXDo/+haJXo0DquT9W+wIp0GGRV3jA4BlXLtion3Mr590kcpe0uBzirl5GOUAnEG3oPvim508YpFWg0e1PY854foecCtSyQ0kFYKAfya9JhzfPPNu/TPb80NstbhNbMF6QDbvXd+i7d8Jh9w6KuvWWLPk86pFSS6IfT9JSztnqFv9cjlnbgZ03YlQ7lGaacEhAPpxw76DW1LdYnP9B0pbOyBc1U1bn3FCMxytcu9Q6K+uRWOugeXQq1Jarb5mt3Pxr6pfOjvfIq730huWeJIMbYTgmP6rXBw5u2czQvlZbb52gSYE5lpme51sRwHumxRatJrTGt1d0rLXpcPcR608SSec9PPAxpmtQCA1nUqPk56TAVZe49/ySf7PnH9Nismc48Wbcz8q0Qx61ezb5bu/p6enqWzGUdTLJffPq5GxZOAIthy8Fcftzem8rmk/rZULO+TZ7gcSWR7sL6VJa7pJJK/lOmSiYUs1rtb9s5NkSpRevJJrm3y7Y5dl+mdB7sfO0zmugxLR3OwquG+1Tp8Lj8WS0Q3ctGcHPfnObvuUpaFcNW3402+YNd/WKQbqlWUoo21MyqmsQ6y5ZWd48sH3BVOVKM957X2cH7Oi8h4NR7OVI+2dwcO1a7k/mw6VOef5rP9fzS2JTzkqi2nQHdAt7g1pm5tlP9T3OrF/FKmJudniXf+G9Y9KZZJVHqu6uuFvD6Za/0y3Mx6Ldl3Is6rMSGdqE+d6t41M5WRvvJLl7szJXV/Q5vdNTPBw98ofYnZW0PPWb7g/+1OXeoWsbL/VZGV49OP+LJXOjkqvpuDjTfdRZlg9lS9iX3KY9nWrOYHzRj0vPrWYfWQGWUvzKayjp0n+a851/hMz1/PDM2n/xloLj1XW79wKzD4/H4fOkA8JsyLUDhB8DTvOE56YBbb/gef/7qY0E6AAAA/BSQDgAAALAA0gEAAAAWQDoAAADAAkgHAAAAWADpAAAAAAsgHQAAAGABpAMAAAAsgHQAAACABRzpAAAAADDASocv1C8AAADwzUE6AAAAwAJIBwAAAFgA6QAAAAALIB0AAABgAaQDAAAALIB0AAAAgAWQDgAAALAA0gEAAAAWQDoAAADAAgvSIR17iB9rBAAAAHxzJqVDOvYtY+VDOvb9SI/HI4bmu1UjLDFsZ9mXEU0NV/XeJe0dusTcMPVJvipzflXLqd/4jdXm3JGvjsEWJ/zdUMtvXG//39R24w33lt7TXazdFute80KZAADwScxIhzzR56xDDE34CfGxGjR9IwxnZOuH0dMQRy5c4cfEGxs807Fvewi7DaA5pF5NUtIhf/NG6TB14yla7DWn92PYQqzR1c8PucqhH49jkNWllFp3rtRuDNn3jnh4skwAAPg0JqRDicXdgPRq0qEnHXSJg9gqF++DdXq+TLRnq4JABTIpHaJQLiFq6TBKDuj6J6/cTnG27UcSrRfmpWMPR9YAbpmOVU717u1VJ4yMLUYt1G6f6pVIcBIZT5UJAACfyKR0yPO3muk7kfoJ/eBKh5o9KD8+t5wvSfnyUQxb0QM2AXF9MtywGGQdyn2zPvCLOS1M1cbShBguHaB1jqpS7ELItEn1XgxnDsm23/FvE96bLY6Z2vXVasPFVQFrZQIAwOcyddYh58p3J+vwjqRDV6/kxXef/ThksO6tlnVK4hQOIbYlhxBUrF7bsCg5iv2I3Q0Du3JWKfkSH0WkvBIQp2Kw1pRdheyF07KwS9l0JSuUdNh3G7TLFXPpkbojNFO7aL/dSmpOPayVCQAAn8/sGxYlopgl31uUQ1tpOvYtHCLcDYsvodQ/OSDXybNb5lI6HFJhhNCRDsaGrrRIqoJqnLxBWhzDGUfliYxybQ3Ap3vyMwoxhuuh6L0a7UzlVDedIORStC1aqN0enDDJjLofs1QmAAB8DWsvZ96v8J+a2JtKYzjjhgj/DnLXvYTSDmVvv8Yr134jN5x8v5t1EGn4emWTjfekgzgzobMCV54kxJQO80HTEP/dB53n91ynUx1XKVegv45mppQeKR3NmyBTtbeHGvwDrNLY2xYBAMBXsfx7HVSUe0/SoVPpYFu73TK3r1jszSpbCgstTOplrVQpAb4c92+kgzlhqYoVKfpHE76rKLGveDQnJhzLOlJJypbde1DVH8ZgkYqo+0Tm6Md14GJz93u6tbvPz+svr5QJAACfxPqvhJLTfok3gyi/ZIStz13Aa93wkNLhitXSIG/zwDO5OWKQr8ntTuWAhJAOxZROCuZ6j6FxktpKUPGxypOHCKWD9noCo3FSXzo8+h+KVlUNoQudq72hJx1eKRMAAD6JuTcs6tq7RkL9zUuT+q10SEken7N1pXwyYrOrbLVafjwectE+kg4lfpWUgFgCl2MHg9A35Yqshq7N/GKBfKFidO8pRmJMbXx/OHmLW+ng7+bYEvXxjunaG7rSYaXM+2oAAOAjmMs6mGT/hxmhcKKwE8Bi2HIwH79qmMzrmIOzDjU061LcNxPujXZru04SiD0gsXdwiz6XkF8OqaXWlyVqk9zbZdscuy9TOk99rnb3tm4/mm/RjM4CAIB3843/hkVvAa/iTjl6f/dWYVPSIOsQQ05iOCFzIiMwF8mclwxmE/IiajpbGe0nu3ixM1cm9nccNVE/HzzwhdpvGv9kmWQdAAC+hm8sHQAAAOD7wR/dBgAAgAWQDgAAALAA0gEAAAAWQDoAAADAAkgHAAAAWADpAAAAAAsgHQAAAGABpAMAAAAs4EgHAAAAgAFWOnyhfgEAAIBvDtIBAAAAFkA6AAAAwAJIBwAAAFgA6QAAAAALIB0AAABgAaQDAAAALIB0AAAAgAWQDgAAALAA0gEAAAAWWJAO6dhD/FgjAAAA4JszKR3SsW8ZLR/SsW8vC4qudIhh2480rCsde/+S9g5dYm6Y+iRflTm/quXUb/xma3PuyFfHYIsT/m6o5V+VxXDebv/f1HbjDUNrVzGsveumKFOENlt9t9IiAAD4AmakQzr2bQsxZx1iUHN4DAuh8s4IwxmO+mH0NMSRC1f4uRE66di3PYTdRr0cB69ApqRD/uaN0mHqxlO02GvOkBrDFmKNrn5+yFUOznVWN2kd0wngc8ohBtmElFL7iFZaBAAAX8GEdCix2Ezfeb1+hHC4K/dnjNDoyDaIrXLxPlin58tEezaZSxB1SekQReAMUUuHUXJA1z955XaKs20/kmi9MC8deziyBnDLdKxyqndvz25qVICvk1ZadHd5KX2hRVMdCwAAPoBJ6ZDnb2+74A0TuSsdavag/Pjccr5EwvJRDFvRA40SKp8MNywGWYdy3+wK2S/mtDBVG0sTYrh0gNY5qkoR+mXapHovhjOHZNu/Jh20wQs5gSbT0FQ40yIAAPgqps465Fz53kiHEoRenM17eiUvvvvsxyGDdW9lq1MSp3AIsS05hKBi9dqGRclR7EfsbhjYlbNKyTvL/isBcSoGa03ZAcheOC0Lu5RNV7JCSYd9t5s0Sjq0a/6+NBikE4bJBPcpzbcIAAC+itk3LMrsL+NNc6btZSNkbeEQ4W5YQwlt/skBuaad3TKX0uGQkTSEjnQwNnSlRVIVVOPkDdLiGM44Kk9klGvr8v10T35GIZbzJ7WgNutgnVqv1cqlsy2jjkG4PvUembK4SLje9+MWAQDAV7H2cqZeTL7fiEIMZ9wQIexmUVtC6WD9q8O5uxI2csPJ97tZh7yR8FBXmg0XXzqIMxM6K3DlSUJM6TAfNA3x31PQeX7PdTrVUTMZrXRovys133hd+ki0Yj9SSumR0uG/xXHbIgAA+CqWf69DExHfaYStr1eRiNUP/xWLvVllyxCnhUm9rJUqJcCX4/6NdDAnLFWxSZ0E8TYsHunYm1c8mhMTjmUdqSRli9yTcLMO6hslHXT496XD3WuT5pjntfdkarkOcWy+DOm1CAAAvor1XwnlvE/3NiNsfe4CXuuGh5QOV6yWodLfqr+TDrWU3O5rjS2kQzGls5l/vcdQTmI0WQctL2qp9tjBoL2ewGic1JcOD/uh2To5kxze7o+oqcP4wIeXyJhvEQAAfBVzb1jUtXeNhB9hhFvv45FSksfnbABJ+WTEZlfZamX7eDzkon0kHeTBhRCEKqjHDnpOGKRKGpv366XJGkXlCxWje08xEmNqY/FD5yZaszzpoNIojVBxJM/FRNbhKsezUl803aL111kAAOA9zGUdTLL/w4xQOFHYCTYxbDmY+68aik82s7PQLpPNkUVTivtmwr3Rbm3Xrr/YAxJ7B7fIlfm25ZdDaqnXQQrRJPd22TbvIKLZn5qXDn6uR1g8+u1Sky2a0VkAAPBuvvHfsOgt4NWOSf1llp1NAyUKhqXL6HkmMZzwNpERmItket8nBt/KXh31rEOTIXBzBn7WQblMvtlga5JW30gHN2egPh90ooUWkXUAAPgqvrF0AAAAgO8Hf3QbAAAAFkA6AAAAwAJIBwAAAFgA6QAAAAALIB0AAABgAaQDAAAALIB0AAAAgAWQDgAAALAA0gEAAAAWcKQDAAAAwAArHb5QvwAAAMA3B+kAAAAACyAdAAAAYAGkAwAAACyAdAAAAIAFkA4AAACwANIBAAAAFkA6AAAAwAJIBwAAAFhgQTqkYw/xY40AAJgnhv1IX20EwO/HpHRIx75lXPkQw6ZY0xhd6RDDJmaGdOxtwenY+5e0d+gSc8Oa2ac25/yqliMa6rZRm3NHvjoGW5zwd0Mt/6oshvN2+/+mthtvGFq7imHtXTdFmSK02eq7lRbNMucP24m3cLSP4TKvpZZ1W7L7OOu1IV5+OkK/p8mvY/Ceij9mhpxPeD0gz3eATqXLz9eO0oXSYti2bQ/hGqy1h7gjeNC40VC1vWPi2kUfjnqWrn3yylq/HjR11A45W+g536w85TPSz6tjqJ7lEYxfzox0SMe+bSHmZx+DF0yakLQyCHrS4Ryw/fF2VurIhTq/t7ba/ruH0AyKPFNcXVRJh/zNG6XD1I3niHICTYjnf9XsN6scnOuaGVk9gM6UPBc4dL9IKbWPaKVF87jeHUaY8462b3VaqS90pIN/X1OguPIsZNTT9Nfe5O74d0gRi64Q0XO6U9VL0uGJmLkf6cw6pCMYL3bdrY2/3Fe6mu/uxbblCdP/YvQ4XvJhKWHygd/qKzE7eFOwY2jpNR0Zq2zrS4duS67LkA7fgQnpUKYkb/ruDpKlWasjHRrZOxD+1+J9IFjzZaI9xUK7vJbSIYphE6KWDpMrjqH+0Zzi7JwUL4uEeenYw5GHkFumY5VTvXt7dlMzf/mTzEqL7i4fTVGdFk11rKaLPGwANE5q1lzaGf3cx6106CLb0iy/Qux3+/ZrO+SGC01fGYRDymXdWuELJ8a9FPbulsTdwGJEQjqTiEc4E0a+QcrSOnec/cyTyyuGPUYz3zeSDmMVXF3iKFJv0rcLSH/xqJdKI+ngrNqQDt+LSemQx5XtlGaNdA6mUObX6YHgSgfTZZ9ezhcrykcxbEUP2ATE9clww2KQdSj3zS70BmucmKqNpQlZzZu7zkrVqG1SGW1UtFWr2DojHbTBC0vbZnZrKpxp0VJ1cqavhcklp33OpR7VdmmoE1tezjrcOnqmrdLa7vhrdwI31TQVQIWCVYPquM0sz/J00sHNL6SeamgEtLMh1Q7fxb2yUfA+H3BPJ10Lkxe4q/0Gucg6wlZWKXUudiSBHa2mPnf3p0edf9uFHNLhezF11iHnyncrHdSUK2YbOzVPG1G5ut3NyumQwbo3NnRK4hQO3ggOIahY7UjfgXQoOYr9iN0NAztKVUreWfZfCQi5KBaV55GcvZBzt3u7g2ulw747Swl3WZ4njv5zHExIw2SC+5TmW7SMko7d/pkfQ/PAXSd28wXPaYB2fbeMGpH9J6I722gn/Bo6SnS9O+vwxFPNE8TeBpGbZI2ZoexV5tFN9G5bee3LbtUfn3XYd186+asDt6vnH5sFirOFUDO4vo+0/HSMmfO5HJRIh+/A7BsW5XGa6bKJZTbwPScd0rGL1OldSaV60aNSm3XIH08ZJKWDWluF0JEOxoautEiqAm+9qy0uyzt5IqNcW1cYV7p1y3HgCsPeHFmcqZxar20eoDeU3WWp9eFg//LK/dj8w2yL1kjl5EJnreyk+ZunoeoeGyInuV7k8SfZl5IOqms0iSXx45RI8bJDnbk8f/vsfH7jpa5PvCTf1dN7U0apzMwY8mstead7d3HrpfddYdrpFzr99TQ1G9N6rrc6UGPSSIfLUDcHOE0bPgbSwS8hIR2+F2svZ+peJEep1w2mn3BTaQxq47GT4rJbZTeJsHZh2GDkhtRGOq7qskRquF7ZTM+edEg2ISi+LKM/pcN8cLfCTdf+rZBSnuv06rNmMlrp0H53l37dnIBcW7EfKaX0SOkwx0xmW7RAtbBklEIQNbTdVM/69XHc9J7RM5mZHUfJ5klUNWPpMK7J87STdeh1jbdxN4eUZztddQxnxu1QgdF5kEu9u5jS7n9t7iPQzbo+fu+GRTIbBs0spitvB/e4/SaZO8LR3jPSoZfZQzp8B5Z/r4OINkpDl055lFT41MpmVOmgg4hY/XCnSJXIPCd92cm1MKmXtVKlNKUc92+kQ9ShTxWb1KarmaeqKLGveDSLKceyjlSSskXuSSQv66C+UdJBT5B+fHBzF9qdYuFe955MLaXyrTNR9Vo0TQwl3xBLMLhWho03hGnmMd5Epxs5NzXZzciLlbUzfc0AABCrSURBVCKcwNiRDp0Qqp6AKx0eqh98wHx+V+qZjpoXXTGcSbwjPWKQb2cWsmsWenf5ubObc2nmRzf4fZB0sB+k+ayDzrzpAyV9I2/MV0uiDp0k56aWTEiH78D6r4TSfTH/83rc8tFPT4N30qFZlDfLeWmGyhc8ejPynXSopeR2JxF4xAQz2uort7UdvtYl5UUt1Q7xQXv9jLFxUl86POyHsswrZ+nPildN/XnAcbv5Vhc53aI1dF8SOai2QecXqsulfuK6raBpRTG+h6rm9cjRldS6iUo+9ediv9N2+sGy8UPJYs9XdBpcxt9M5edQNoNv2G9nencd4j1PFPtk8PNK+wDpoK2YyzqchchpQt7QM1IKjN4U41/R66hkHb4zc29Y1LW3GSZvyLH6lT7UdJ9SEe+HE0DSsW/mZazz3jabWRftI+kgwsseghjk9djB4PWrqV6dJ5NUNvOLBSWlPrXCTTHK1y71Y7Gz23hcOxOIttT66GJ2XVYMtVbqi6Zb5H7U5Wq/EUbN3bVDp5qOKSmTwVMZCKAbu4b7HIuMi5PxSieTpqWDYEk6PDtPdD1SswL3z0bcdeQn2pdMpsb73t22u++Ju+A3XNBPOfAN0kF0fJ3LHe5Meb/upx1bZatwrt/33JGa9MnrMQhWmcs6yEnDPCVnRbY8A05vWDjBJoYtB3MzSzrC325HN5jwYkqJ4T5n3pkTmtquzF2oe0AyWN0h1wPbll8OqaUWrSeb5N4u21ZWHFbp6+zrpHTod4KreZ0+Mt+iGZ11WaNXp0KJ9pf9ps94UkN8pefZuRHQW1c9h40bvbh31VXqHq7+35B1eLpdg0KlzWtr0DvpYMb8Wu8eGn3nh+6dKx1qJB3uppWJpntGOiXngWv0tP8rowbSwZ2yxGJ2YQ6A9/Kev2ExXo/MG2Hr6yTG1HQ+Nf21Ng2yDjHUN75tiycyAnPN12M8O3DuVjFinK0MN2fgZx2Uy66VxygE3ksHN2egPh9MgQsteibrcP23nblshtap+Pq0LtX9me1mq2DYL1+YBa3wedyJ0HrxXNbBRVQxTDpMKgfroDtnPPM3LFzp0Om3k727U76l0y9Eqf2kw5wD57IO3XtH0qFa2fSybrGe3b09QtmE/ujQX5B1+Dr481cA34knc/vTSfsvYF45PFH0d230O/lABwI8B390GwAAABZAOgAAAMACSAcAAABYAOkAAAAACyAdAAAAYAGkAwAAACyAdAAAAIAFkA4AAACwANIBAAAAFnCkAwAAAMAAKx2+UL8AAADANwfpAAAAAAsgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYAOkAAAAACyxIh3TsIX6sEQAAAPDNmZQO6di3jJQPMXifPm9Ejxjma0jHPndxbtN+pNtLYxhdl47dVBhDe3k69utD4c5KtwKvNHuBeSr7kVZtfg/p2PcjnR1Dle82uWl5vr02yf7/rhUdz/cdkbvwVestoj5b/Uc5FQDgezEjHXIwzlmHGPLsWLMQ09H6zoge89IhHfu277fmxFDCRTr2G/lwxvyja4Ibv9xLL/XQ3qLDmw6A+icnPrnSob3T3DKjmZYR7RhG7GyDo5jOxsSwhVjb5We8pj1f+0+jYHL1KWXpcNsVavnp2LdwTEkiAIBfiQnpUALeYMNCrqhfMaLHrHS4ruvekENHG3s7mROxdvcaaSNRiP3oNLjNXjYnHS6DWulgmzKznF5Uf6M0gi30yoOUGkRWIh17OHKb3DJDbD7fj7To+aJjxomBJenQSiOyDgDwezApHfL83ZsXVzYURkb0mCpfZ+ibQF/XuF6AygFOxU8nmWJ3AVT4iOHMzdgkti8d3pF1yI2MYbT6dYJhDNsewkccXfGjZwzbfsQUj11picuf5i77IIQDLj+9zfONnbl0p4Oou1VuZ87tAAC/BlNnHXLU3f1Y0+5rP21ED3dytrvMYr9aJKefNEw2KoZWg9REugpg+24zE3Lzf5OW3UiHISqqbiGoNMNNCkh45dVdCxNgTQZE2CEquhIQp2Kokfpy9rbl/aGtKL2w7+L2y4Vznh+abOK8lA6eWtMZH3GX7WW3mzUAAD+Y2TcsypTrZuxfXb2+lnWo5xaca7WuUSHZSXFX8aHa2QZjkYkxa9+HCSUyPMu4t7BMXTzrYPxhjN5ygkIeU3lWQMjWizxCIwesE/bjONMeci+o5H0uVVM3KkIs6q0WNO35RrTZcyuNrrGlt9IhnSdqyDoAwO/J2suZds376iEHa0SPvnRov2k/qUbW0JL/ZbL/w4P4ngHejruqUd2opIMVHjoD7h97fIibZXvNNssegm5KeyCxjY1PRDtPOtSmaTlXo3iIKR3mg/b4YfRq0jsXz3he7pSU91AcFXEjHWIIsV5C1gEAfjOWf6+DjglfLh3Wrp2XDp3Etl1Rumtf9c1IOlzWlkB2nvOflw6pnnWI6uLxlv67cHM2Wbook/XKXzdJfues3+UZVbkn8ZznlSvTdfRC2Dm5YSEvIesAAL8Z678S6sUjkUMjeny+dMgfJTP92/2ZfgBrq/SkQ8zvIDYnOmekw/W5Pl/QOccgjxcYxfes0PCyDvoYQC7ZOVLY7Ag5p0BUG4yXnvH81exrI8Rs2KwckyTrAAC/LXNvWJT59kwtm9zy60LiM6WDDgZnLLg+btPkNczJiCivGAcwE2zsWQeVfm/PRFw/DjYsxPVKEbTpodzg9nxBk7if9adt6X69NKkV2t15zLqsj1G+dmnOrMhPljx/SbT9iE2qQW9ovT/r0JgOAPDDmcs6yMmxmXV/lnToZx266GjofeU7J9dTz15eIcWt9i4W9euJ5bcoOcc+LtnjxcSHWWg7Tex5qFmXX2cXxPJe7B3cIsP8tp3vjYhSrXxb83zWDXd5gGmJ8zCPq5910Artpn4AgB/B9/wbFuOTBoN48VjcUFlI1TfbCvl+Z+2rzL/2D+rhhsUW3docwxaCH5oab7SuHUe0zvlQ/8o2TTAXLkV8dbYy3NddFjxvT1X0Pb8icdKxlxxGF6WbyDoAwK/C95QO8F2YVw6/AitZBwCA3xb+6DYAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYAOkAAAAACyAdAAAAYAFHOgAAAAAMsNLhC/ULAAAAfHOQDgAAALAA0gEAAAAWQDoAAADAAkgHAAAAWADpAAAAAAsgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsMCCdEjHHqL3RQz7kd5iBAAAAHxzJqVDOvYto+VDDOXzF+TDhHRIx775wkVYoi9Ix97aVO0VBsdgmzVhTb5d/1NVGMNVh2tLNiZE4d1KiNLt+5HUU/CexTTCCV4x2tf24obeg3+7q3s32z5Y7RcmuJX6j+UZYtB1nCVL462t/hO/7rb2tkW1FpR73MHywV6yDnhc3bW5V4yLDm0DvHvMiJc3NZNBtWc/kvcQ9iNJT4T4eN94A/j1mJEO6dhzgAvx8YjhGkAx5JG4H+mRjvDsLOxKBz1h6cnEFxIqsnTmGhXFbkJSH186OEHXlw7XDJWvbeZmUY4s34aPGAaRe6EpQ+nQXj9T40e4eiAdzg64O0Exf/NR0sGVAqdoqMboR+/XaIKdc12nFeVGXzp4vnijl5qVg4q2vSTlU8rBK0wV1ZUOl02iH3WFiexjHzHeAH4NJqRDGUDNUqiMso/asEjHrqakXLta39yuidVs3p+23yMdip1uGsFMp3p+f0o6PGW7qe/8t+9Gr9ypaPsxrp6RDlF4PkQdFAdPxXSVBfv6ZrvlzGUd8pUhji7P5QvpUMo5RHv3I6WUPspLjQzw9cdkmV71Ovmmm34Z0HeTvbK61vh6RjrY7wF+XyalQx7UrXTYj/ShZx3KoC5T0gvrxNIOtxIV71UNYt5SYd+XDp7tD2O2mej0TL6Zyu6kw30mu+MLu/bUJb6WdXjS1d7215x0UHfNrqfLfa9FgjauhdA8zqs5s1mHeTpZh6ZhH+KlSekw/30zUs7OYjYmXBf2sg6tGOluWDzupcNz4w3gV2PqrMM51PbdbsCeg3LfX8369vTKGC9FWme5ayIxKwpvDsztE+XJO5zA7f2z2OGuc9rprh9dW0cMpcOT66BsnBN43rZhseZq5ZDapsWsw3RQLKvv/Yi9479z6MLLM49h24+jlQMzWYcbSWO8MN6weMgn/X4v6ebkpEHfm6YDd2uUI2i3fT5f0XipJx2qpbMddygdyDsAPObfsGgDY+YdS7cn3rCoYdnMPyI90UiHnrlmWrnmBjt1XEV1sw7NxNeTDtKfvXDS2PDeqUzPy8KN9Z8TAq7/9JdcbVtx2bAoHQ7pyxA6QVF0kuEu/wxd6RDi05mERw1+5yNQFTQevfr5vp8O94Tgh3ip2QXweky3+85Ih0bYqgHdU7zeloRUNx7XFgzSAeCWtZcz/ThRhuXTuYeXpYMTyDrSQRosJyCzjrPbxyZI3kiHYcQtKYp9369ZW9Ts7R58jHTQi34jjF7NOkjjZlzdDTnPZR3qOYA26An1Uq/0XTtDY3m1RT3OWRmW73DuPXe2Op1527Y9xOTVpY4lvNdLrnSoLZDXXr2tm3hxO0K7byc9c/57lMopI3nf93MrSetTdymEdAC4Y/n3OjjD6Tzr8MKIGuySDHgq66CuE5NRVzq4TXo16xCDPMum5utl6fC83+2CNj/It0qHq54bV3dD95x0kF0iHXtZdzdBMQbVYtUYo6QWaYo6qx8+mU7XLN+524N223/64X+Il0YbFqp1VkJeZU1lHdQ3rXRoS9PeK5mWc5rqjFZh6FA6oBwAHs/8Sqh26JSXM59dt3161sEWMVwKe9PEjHRQhdrZN6cm6iQ7VEYD6fDaavlcx3pq5Z3SYcbV3b3o1axD7qVnG3RQLFV01v/ltsXAkI1Kx76HsCvtJTYdrqaZAOctkct3MkCKiG/1w1BjN0L2rV5qorV5Wjoj0YzENenQ8UyblrA32tr9lomxOJAOL8xyAL8Sc29Y1HWKnFvrTuSZnH16TH3OWQcd9ExD/Hhm1l/XiqUnHa4frDfMhGinXVHzStYhBhUcrjlx4jnUolpp9bp0eMbVejmbSjLmXjqIJ65fbjhXmudHfnvmdVBvrWl7V34El2utelUdY5B1qILEeZ7PjLUP8ZJtgOqgTeveIx2s9nIVn85GhDwkbStWsw4vjDeAX4y5rINc2DQJ02Z987wRbsE3C6qOdJC2q9Du2NuPZ/oW9WEjHeoyfsoVM9KhVi6XnP6z6OxZu/QzIj3LbCVTzVt0texmrRprbzbWpmZTqD2d3947123vfSoEtllsKxV7nkqsv7zQrf5s51sz4x/iJec0g37Uz0mHQReXpSx6aUY61A5Ys47vGG8Avxw/9W9YOFmHa6CL3PiromaB6p6x7pEphGvF5LM6IU2ugjqhQBjSfj388ksp50Y8h93pnGnpMDq1cLkm71Gonan6JLuCtHno+ndv9gk3BwQvzqTg273UHCjoa/b6wTGyOG/8tFkH5a+ywzXtJWVO/+rljk3WAX5ffqp0APg8RsoBAOC3gz+6DQAAAAsgHQAAAGABpAMAAAAsgHQAAACABZAOAAAAsADSAQAAABZAOgAAAMACSAcAAABYAOkAAAAACzjSAQAAAGCAkg4AAAAAMyAdAAAAYIH/B3Qz/N0XsM/WAAAAAElFTkSuQmCC" alt="" />
$* 和 $@ 的区别:
当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;
"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
#!/bin/bash
echo "\$*=" $*
echo "\$*=" "$*"
echo "\$@=" $@
echo "\$@=" "$@"
echo "print each param from \$*"
for var in $*
do
echo "$var"
done
echo "print each param from "\$@""
for var in $@
do
echo "$var"
done
echo "print each param from \$*"
for var in "$*"
do
echo "$var"
done
echo "print each param from "\$@""
for var in "$@"
do
echo "$var"
done
demo1
[root@hy ~]# ./.sh a b c d
$*= a b c d
$*= a b c d
$@= a b c d
$@= a b c d
print each param from $*
a
b
c
d
print each param from $@
a
b
c
d
print each param from $*
a b c d
print each param from $@
a
b
c
d
[root@hy ~]#
demo2
转义字符
aaarticlea/png;base64,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" alt="" />
\c 不换行
#!/bin/bash
a=10
echo -e "Value \t of a is \n$a"
异常
如果某行代码出现语法错误,程序退出; 如果是Linux命令出错,程序不退出,继续执行
正常代码
#!/bin/bash
a=3 if [ $a -gt 2 ];then
echo "大于2"
fi echo $a ###输出
[root@hy shellScripts]# sh t1.sh
大于2
3
Linux命令错误
语法错误
输出
echo(自动换行;双引号可省略)
#!/bin/bash
name=world
echo hello $name
echo "hello $name"
printf(不会自动换行;)
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。
#!/bin/bash
read -p "please input:" input
printf "%s \n" "you input $input"
输入
使用变量接收
read 输入(-p -t) ##-p输入时的提示字符;-t多久不输入shell程序就退出
#!/bin/bash
read -p "please input:" input
echo you input $input
$REPLY
如果不使用变量接收输入的数据,数据会存到变量REPLY
#!/bin/bash
read -p "please input:"
echo "you first input $REPLY" read -p "please input:"
echo "you second input $REPLY"