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,iVBORw0KGgoAAAANSUhEUgAAA3UAAAB9CAIAAACK192HAAAK7ElEQVR4nO3d23WjyBoG0IqHUEQkBEIgxEEek8x56PNAQxfUBV3Ktoz2XnpwyyVUSLOWv/nrFv73v//9999/AQAAXvbnz58gXwIA0Ip8CQBAS2+eL6cQpp/uAwAAD6jkyzmEEMIQwlh47bi2OTVEMXEOYQ5huO+FDfPl0314zvLhCMcAwMc5zZdjOYfdny/nEPr9C780271JH3r5EgD4QJV8uWSj1/PlkMSs78+XP9IH+RIA+ESlfLllo2lf9osN9+XLObnClu3m9ZEOwW+/SiPasP5q6d49g90v9qEy0h236fcX2T7DuAEAwMWl+bLfZ6a5HODSomAq22Zcc2G3PlOaZ1kpAc77GmQlvb3Yh+0iaZiO37RPQmqfvIWICQBcX6l+uS3rmaJ4FJI2p/kyW/4c96mr0vI0X6Ydbt6Hym/TK8T6JFBWOgkAcBGn+bISoU7zZSkdjrmYlc1e9Xx5+vImfdhk0+dcHv5O31q+BACuL82XU2F8PE2Zp+tXpsK0yOzamuzVXs+Xr/RhTD6E+uj2oYF8CQB8olL9Ml7+8py+/Npvq1++0od0OmZ99DztlXwJAHyiSr5cstTT+bJUOAzt5l/GstHtlT6kN37oYbYCKl8CAJ+ulC+XLFUfAZ/KQ8aVwmGI1m7Hl3po9mS4I1++2IfDraXj42OyrP4QZ+VLAOATfVG+rBQOt92O4o2QDqmrPgd0iJ7pk/at+hCSt572zcZ1hVN2C6cx6Xa2kwAAV1PKl0sq6p+tt71DhHqHPgAAfJzK+ZBP+5Hjxd+wDwAAn+gr8iUAAJ9LvgQAoCX5EgCAluRLAABaki+5hlsIt9zzXeF001PLXlTZF3ZWjwFAhXzJZWTPZAprxKzvtJWeNR/WzJrdinUuxFkAQL7kUko5cqieFBCiVNpF4TJ+edg3eKIgCgCfonW+7MM8h3kOwxf//e3Hv2/UhzBMYZ7DHOWH9DidJ8THBGUvddrgq73Jbda/i6bmtUelYuTSwe4s/6UZcYuV2w/p8aFbH1QuAaDmS+qX49fny274l2P+5pt95Gi4wfrppX5wM/d3uM3T76KdudqRzbBPxeljCYvp6fDTmi+HJETe1jPrzbwEgBO/NV/+LZSOIaz5Ztr/3X+H4PUN3uI2z76LdqZcR25JTTF9+0rJc9OFcIvyZcgVOI2MA8C5XL5cx7iXRz4r7NsMw65kteTLv0OlhWrWNqj6ZLmr/9e3JdOM/e73Y1LFSqUVraxX8mWfrBl5VHwLYwhjCPGNvsVtnn0XjfRR3fHwBvEKniEXAev5sksKnIcvbYo+uensgwSAT5fky/6YD4bpmP+WaPivSX/MiOMcpulfME2vcHimHx+fsdeFaetnn5nxOe5DwZBkr8NKkLRBfKnngtfhmv3jEfNwhWWR8yFf/vhtnn4XL+sLyS/uzpYgS+t77vyfmHH/CcU1yzFJmeZiAkDGMV8OU6b4NExRYujCNCflo6R+uQuU+5ccGi/6sfGg6pgEqbjqlY0bQyE/PRe8ulyS6x8sfJ0ue/7x2/xG291M5UHqWznqx59E6UONC5ld8uH99AcAAL/EPl/msmMIoRv+hb9sOjw4zr/cXzYbYUPfeNFxmgXi4JWOsIYQukLueC54lSpmz5UwS8PfP36b32j7RCuTILfoWdm3ct5XJWNjlNjns3VCX7WICQB+u0y+nLOP9Y/pPYXGer7Mr/759nxZmW13eql7GpRe9dwszEU6wv7jt/ktSvdx+M/oVi5M3jM+flsP7JnXfx5u96cDNgD8Esfx8TFXv4xdo3455gp791/qngat6pf1y/74bX6j7f0PH2G3zoOcyx28J19O0dXqHdiuafIlAGQc82U/ni3+7feLe3Lq+fLb5l9Wglf/yOjmD86/TK/wUL78htv8Rltazua/qTpufpovt2vG31t6aORhdVHpgHIA+GiZ/YnGZE+ifkyWe+8j5uGZer4MIQzT7i26of2JL/XgFfaLgRel9d2vrB+P36JSGSs5jGWnV3iH2/wuy52VIvqt+unW82V8W/fXLwGAvPz+6v+2rizsT/n3yJa0QbQvZrwh4vI4bnu0vbx1uDxs9xivCk4368nOSiztiDjd3SD7Fk/cSFe+wvvc5reo58t0JX0szZelk3jkSwB41Zec3wNfYAnbpTH/7bjw+mbp6Rj3QXo0+Ua+BIC7yJcQK23fFGxIBAB3ki8BAGhJvgQAoCX5EgCAluRLAABaki8BAGhJvgQAoCX5EgCAluRLAABaki8BAGipTb4c5zDPoX+hAQAA11DJl6UDmneGKcxzmMqtThsAAHAlpXzZr/mydBZz6MeT4HjaAACA63mmftkNYZ7DPBYvetoAAICremz+5d/gWKxpnjcAAODanlnfo34JAEDJ8+vHzb8EACDVZv34WN55qNJgCaAG0wEAruT59eOx8SwmZhssm2LOcxi6R7oMAMAbe7V++Qr1SwCA63E+JAAALcmXAAC0JF8CANCSfAkAQEvyJQAALcmXAAC09EC+HJ/ar2gKYX6uawAA/EL35stSTBxCqGyOPuz3Z5/LD5tgAgBcw3m+7EKYQxhDCOV0eMu98CY1AgB8npN8uVQWu1xSvFWHy29rJA2F9AkAwCXl82W3FiY3w/6fY3VW5RiFy87wNwDAJ8nny2wcXJ68lQfEs6Yoa5Z0X33SOQAA3+Xh9eOnYTE27FNpfXGPfAkAcAHn+XKKFvEMjxQvh/WF2QXmVv8AAFxSJl8O++Lilg7HR8LlEh+HcoiULwEALumx/S8rj7hIua3vkS8BAD7Neb6sj4lPSUwcosbyJQDAp6nly/hAyDG3/uZ0uY98CQDwafL5Mt2EqNs/c+cuRfIlAMCneWB/ommdZHn/LkXyJQDAp3kgX27ryu+X5suh/CsAAC7gJF/G+6I/sf95Nl9uF3xoq3YAAH6FTL6c2kXAoby5utN6AAAu6YHxcQAAOCVfAgDQknwJAEBL8iUAAC3l82VpWc9zmwptm7Fn1/qU1gABAPAbFeuXcyFK1o8j3147J4vQb+uBk9kHAADXUMyXlRMgp+ruQnExcojCZfxk/LNd1gEArqQ2/3IJgk8cMr7FyuWHbr+V5i26ssolAMDFnK/vGfY7rqePZQLlYcrmUuNc8mVaoRzXcXYzLwEALuaYL8d9TTG7KGe6r6gZ9iHyMG5emt8JAMCvlqlfxit4sgvJ6/lyKFc6t7HyJX12L5xsDgDAe8qPj09r5TKb/O6pXy4O0y7jmmWaMs3FBAC4gNr8y7EwPzLOl+nMy81WyJzWq8VMvgQAuKRivuyiWmNl38q5PJNyKV6Oa+Wyq64TurMgCgDAmyvmy7E8LfKe8fFx3YdoXP95qFaqXwIAXNIxXw7r1kKV/HeaL2/R+vHS6Pnh+taSAwBcQ6Z+2Z1tHlTPl7coU8b5sj7C3omYAACXkB8fH8t1x3DH/kTxz3fWLwEAuIZ8vpwfyZddOSzKlwAAn6Y4Pr4dIF4f1z6McR+kR5Nv5EsAgEs6P3/8FUN5EXqlPgoAwO/1tfkSAIBPI18CANCSfAkAQEsP5ss/Zw8AAD6bfAkAQEvyJQAALcmXAAC0JF8CANCSfAkAQEvyJQAALcmXAAC0JF8CANCSfAkAQEvyJQAALcmXAAC0JF8CANBSMV/2Y5jnME+H5vIlAAA1xXw5zmGewzyHoYuby5cAANSoXwIA0JL5lwAAtCRfAgDQknwJAEBL8iUAAC39+fPn/8RrvyRGf/OtAAAAAElFTkSuQmCC" 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"

shell之路 shell核心语法【第一篇】shell初识的更多相关文章

  1. EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB

    目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...

  2. 回合对战制游戏第一篇(初识java)

    回合对战制游戏第一篇 一,所谓的java. java是一门完全面向对象的编程语言,而之前所接触到的C语言是一门面向有一个过程的语音,对于两个的区别应该有一个清楚的认识. java的第一个内容. 类和对 ...

  3. shell之路 Linux核心命令【第一篇】管道符与重定向

    输出重定向 命令输出重定向的语法为: command > file 或 command >> file 这样,输出到显示器的内容就可以被重定向到文件.果不希望文件内容被覆盖,可以使用 ...

  4. shell脚本学习积累笔记(第一篇)

    (1)首先,今天在执行shell脚本./test.sh时抛出“/bin/sh^M: bad interpreter: No such file or directory”的异常,百度后,才知道这是由于 ...

  5. SpringCloud核心教程 | 第一篇: 使用Intellij中的Spring Initializr来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  6. Node.js之路【第一篇】初识Node.js

    什么是Node.js 1.Node.js就是运行在服务端的JavaScrip. 2.Node.js是一个基于Chrome JavaScrip运行时简历的一个平台. 3.Node.js是一个非阻塞I/O ...

  7. #Java学习之路——基础阶段(第一篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  8. python开发第一篇:初识python

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  9. 第一篇:初识python

    1.python介绍 Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python的官方介绍是: ...

  10. python 【第一篇】初识python

    人生苦短,我用python Python是我喜欢的语言,简洁.优美.容易使用.所以我总是很激昂的向朋友宣传Python的好处. python起源 1989年,为了打发圣诞节假期,Guido开始写Pyt ...

随机推荐

  1. <E> 泛型

    /* * 使用集合存储自定义对象并遍历 * 由于集合可以存储任意类型的对象,当我们存储了不同类型的对象,就有可能在转换的时候出现类型转换异常, * 所以java为了解决这个问题,给我们提供了一种机制, ...

  2. 选择排序(C++,Java,Python实现)

    排序算法之选择排序,选择排序,选择排序的基本思想描述为:每一趟在n-i+1(i=1,2,-,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.具体来说,假设长度为n的数组arr,要按照从小 ...

  3. 大数据及hadoop简要概念

    大数据 大数据简要概念 指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合.需要新处理模式,才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 大数据作 ...

  4. Docker php安装扩展步骤详解

    前言 此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来 ...

  5. windows powershell校验下载的文件MD5和SHA1值

    Windows自带MD5 SHA1 SHA256命令行工具 certutil -hashfile <文件名> <hash类型> 打开windows powershell,进入到 ...

  6. 数据结构之循环队列Demo

    循环队列 比较简单,循环队列主要是判断队满.队空.有效元素个数 画图说明: 假设:队的长度为5(0-4) 但是实际maxsize为6,需要一个预留空间(不存储元素)做计算 继续添加3个元素后: 出队一 ...

  7. 我用Python一键保存了半佛老师所有的骚气表情包

    本文首发于公众号「Python知识圈」,如需转载,请在公众号联系作者授权. 2019年发现两个有意思而且内容比较硬核的公众号.都是同一个人运营的,我们都叫他半佛老师,现实中的职业是风控,公众号内容涉及 ...

  8. codeforces Equalizing by Division (easy version)

    output standard output The only difference between easy and hard versions is the number of elements ...

  9. CSS 中你应该了解的 BFC

    我们常说的文档流其实分为定位流.浮动流和普通流三种.而普通流其实就是指BFC中的FC.FC是formatting context的首字母缩写,直译过来是格式化上下文,它是页面中的一块渲染区域,有一套渲 ...

  10. Linux学习笔记(一)目录处理命令

    目录处理命令 ls cd mkdir rmdir tree ls 英文原意: list 功能: 显示目录文件 语法: ls 选项[-ald] [文件或目录] ls -a 显示所有文件,包括隐藏文件 l ...