当前位置: 首页 > news >正文

网站跳出率一般多少宜春网站建设联系方式

网站跳出率一般多少,宜春网站建设联系方式,深圳seo外包公司,wordpress 更改中文本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 grep的用法是“grep 关键字 file”#xff0c;意思是从file中过滤出含有关键字的行。 例如#xff0c;grep root /var/log/messages#xff0c;意思是从/var/log/messages 中过滤出含有root … 本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 grep的用法是“grep 关键字 file”意思是从file中过滤出含有关键字的行。 例如grep root /var/log/messages意思是从/var/log/messages 中过滤出含有root 的行。这里很明确的是过滤含有“root”的行。 如果想在/var/log/messages 中过滤出含有IP地址的行呢?IP地址就是一类字符例如 1.1.1.1是一个IP192.168.26.100也是一个IP那么用什么能表示出来这一类字符呢? 不管是通配符还是正则表达式都是为了模糊匹配为了匹配某一类内容而不是具体的 某个关键字。通配符一般用在shell语言中正则表达式一般用在其他语言中。 不管是通配符还是正则表达式主要是理解它们的元字符,然后用元字符来组合成我们想 要的那一类字符,本章主要讲解通配符的使用。 像我们平时说的张某某这个某就是一个元字符不是一个定值。指的是姓张名字含有 2个字。张某某可能匹配到张二狗也可能匹配到张阿猫但是无法匹配到李阿三也匹配 不了张三因为张某某匹配的是姓名为3个字的但是张三这个姓名只有2个字。 如果说有一个人姓“张”名“某”那么需要匹配“张某”这个人而不是要匹配张三、 张四,可以用张\某某前加个“\”表示转义的意思。 22.1 通配符 通配符一般用在shell语言中,通配符中常见的元字符如下。 1[]匹配一个字符,匹配的是出现在中括号中的字符。 2[abc]匹配一个字符且只能是a或b或c。 3[a-z]“-”有特殊意义表示“到”的意思这里表示a~z即匹配任一字母。 4[0-9]表示匹配任一数字。 如果想去除含有特殊意义的字符前面加“\”表示转义即去除此字符的特殊意义。 5[a\-z]这里的“-”就没有“到”的意思了匹配的是“a”或“-”或“z”这三个 中的一个。 如果想表示“除了”的意思则在第一个中括号后面加“!”或“^”。 6[!a-z]、[^a-z]表示除字母外的其他字符。 7?表示一个任意字符这里强调是一个不是0个也不是多个但不能匹配表示隐藏 文件的点。 8*表示任意多个任意字符可以是0个也可以是1个或多个但不能匹配表示隐藏 文件的点。 练习先创建目录xx并在目录中创建如下几个测试文件命令如下。 [rootpp ~]# mkdir xx [rootpp ~]# cd xx [rootpp xx]# touch 1_aa aa11 Aa11 _aaa aa.txt f1aa u_12 flaa [rootpp xx]# 找出首字符是字母、第二个字符是数字的文件命令如下。 [rootpp xx]# ls [a-z][0-9]* f1aa [rootpp xx]# 找出首字符是字母、第二个字符不是数字的文件命令如下。 [rootpp xx]# ls [a-z][^0-9]* aa11 Aa11 aa.txt flaa u_12 [rootpp xx]# 如果要更精确可以用如下元字符。 1[[:upper:]]纯大写。 2[[:lower:]]小写。 3[[:alpha:]]字母。 4[[:alnum:]字母和数字。 5[[:digit:]]数字。 列出首字符是小写字母、第二个字符是数字的文件命令如下。 [rootpp xx]# ls [[:lower:]][0-9]* f1aa [rootpp xx]# 列出首字符是大写字母、第二个字符是数字或字母的文件命令如下。 [rootpp xx]# ls [[:upper:]][[:alnum:]]* Aa11 [rootpp xx]# 22.2 变量 所谓变量指的是可变的值并非具体的值。例如我自己嘴中发出的“我”指的是我 自己张三嘴中发出的“我”指的是张三那么这个“我”就是一个变量。 变量可以分为本地变量、环境变量、位置变量和预定义变量。 22.2.1 本地变量 定义本地变量的格式如下。 1 变量名值 定义变量有以下几点需要注意。 1变量名可以包含_、数字、大小写字母但不能以数字开头。 2“”两边不要有空格。 3“值”如果含有空格要使用单引号或双引号引起来。 4定义变量时变量名前是不需要加$的引用变量时需要在变量名前加$。 本章实验都放在~/yy中练习命令如下。 [rootpp ~]# mkdir yy ; cd yy [rootpp yy]# 下面开始练习定义变量命令如下。 [rootpp yy]# 1aa123 bash: 1aa123: 未找到命令.. 这里定义变量不正确因为变量名不能以数字开头,这里定义变量不正确因为变量名不能以数字开头 这里正确地定义了一个变量。 在使用本地变量时,变量名前需要加$命令如下。 [rootpp yy]# aa123 [rootpp yy]# echo $aa 123 [rootpp yy]# 本地变量的特点是只能影响当前shell不能影响子shell。 [rootpp yy]# echo $aa 123 [rootpp yy]# echo $$ 3070 [rootpp yy]# 当前shell的PID是3070。下面打开一个子shell。 [rootpp yy]# bash [rootpp yy]# echo $$ 3372 [rootpp yy]# 这个子shell 的PID是3372。 可以看到没有aa变量。 [rootpp yy]# echo $aa[rootpp yy]# exit [rootpp yy]# echo $aa 123 [rootpp yy]# 再次退回到原来的bash又有了aa变量,情形如图 定义变量除刚才显式的定义外还可以使用如下两 种方法。 方法1把一个命令的结果赋值给一个变量这个 变量要使用$()括起来或者用反引号“引起来。这里是反引号与波浪号是同--个键,不是 单引号。 例如定义一个名称是ip的变量对应的值是ens160的IP命令如下。 [rootpp yy]# ip$(ifconfig ens160 | awk /inet /{print $2}) [rootpp yy]# echo $ip 192.168.248.45 [rootpp yy]# 方法2通过read命令来获取变量。 read的用法如下。 1 read ‐p 提示信息 变量 当遇到read命令时系统会等待用户输入用户所输入的值会赋值给read后面的变量 命令如下。 [rootpp yy]# read -p 请输入你的名字 aa 请输入你的名字iu [rootpp yy]# echo $aa iu [rootpp yy]# 当执行read这条命令时系统会提示用户输人一些内容所输入的内容会赋值给aa变 量。这里我们输入的是 tom所以打印aa变量时看到的值是tom。 这样的用法比较适合写需要和用户交互的脚本。 22.2.2 环境变量 定义环境变量的注意点和本地变量是一样的。在定义环境变量时前面加上export 即可, 命令如下。 [rootpp yy]# export bb123 [rootpp yy]# 要想查看所有的环境变量可以执行env命令。 环境变量的特点是可以影响子shell这里强调的是子shell不能影响父shell。 [rootpp yy]# echo $$ 3070 [rootpp yy]# echo $bb 123 [rootpp yy]# 当前shell的PID是3828里面有一个环境变量 bb。 [rootpp yy]# bash [rootpp yy]# echo $$ 3828 [rootpp yy]# echo $bb 123 [rootpp yy]# 打开一个子shell里面可以看到bb变量的值说明环境变量已经影响到 子shell 了。 在子 shell中重新给bb赋值为456然后退回到父shell。 [rootpp yy]# export bb456 [rootpp yy]# exit exit [rootpp yy]# echo $bb 123 [rootpp yy]# 可以看到在父shell 中bb的值仍然是123说明在子shell 中定义的变量不会影响到父 shell如图22-2所示。 系统中默认已经存在很多个变量,如下所示。 1UID表示当前用户的uid。 2USER表示当前用户名。 3HOME表示当前用户的家目录。 分别显示这些变量的值,命令如下。 [rootpp yy]# echo $UID 0 [rootpp yy]# echo $USER root [rootpp yy]# 22.2.3 位置变量和预定义变量 运行脚本时有时后面是需要加上参数的。但是我们在写脚本时并不能预知后期在脚本后 面跟上什么参数这时就能用到位置变量了位置变量如下。 $0表示脚本的名称。 $1表示第1个参数。 $2表示第2个参数。 ...... ${10}表示第10个参数。 ...... 这里$后面的数字如果不是个位数则要用{}括起来。 系统中还内置了一些预定义变量。 $#表示参数的个数。 $*表示所有的参数。 例1写一个带参数的脚本内容如下。 [rootpp yy]# cat scl.yaml #/bin/bash echo 这是我第一个脚本,脚本名称是 $0 echo 第 1 个参数是$1 echo 第 2 个参数是$2 echo 第 3 个参数是$3 echo 此脚本一共有 $# 个参数它们分别是$* [rootpp yy]# 给这个脚本加上可执行权限并加参数运行命令如下。 [rootpp yy]# chmod x scl.yaml [rootpp yy]# ./scl.yaml tom bob mary 这是我第一个脚本,脚本名称是 ./scl.yaml 第 1 个参数是tom 第 2 个参数是bob 第 3 个参数是mary 此脚本一共有 3 个参数它们分别是tom bob mary [rootpp yy]# 运行这个脚本时共指定了3个参数tom、bob、mary它们分别赋值给了 $1、$2、$3。这里S#被自动赋值为3因为总共有3个参数所有的参数被赋值给$*。 22.3 返回值 执行某命令之后结果不是正确的就是错误的。命令正确执行了返回值为0如果没有 正确执行则返回值为非零。返回值为非零不一定是语法错误执行结果如果有“否定”的 意思,返回值也为非零。例如, ping 192.168.26.3语法没有错误但是没有ping通,返回值 也为非零。 返回值记录在$?中且$?只记录刚刚执行过命令的返回值。因为$?的值会被新执行命令 的返回值覆盖。 练习先执行一个 xxx命令命令如下。 [rootpp yy]# xxx bash: xxx: 未找到命令... [rootpp yy]# echo $? 127 [rootpp yy]# echo $? 0 [rootpp yy]# 先执行一个xxx命令这个命令是错误的命令$?记录的是刚刚执行过xxx命令的返回值。 所以查看$?的值是127是一个非零的值。再次查看$?的值时却变成了0因为这个$? 记录的不再是xxx命令的返回值而是它前面执行过的echo $?命令的返回值。 逻辑上“否定”的意思也是可以体现出来的。例如下面的例子。 [rootpp yy]# grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash [rootpp yy]# echo $? 0 [rootpp yy]# 这里在/etc/passwd过滤行开头为root的行结果找到了所以返回值为0。 [rootpp yy]# grep ^rootxxx /etc/passwd [rootpp yy]# echo $? 1 [rootpp yy]# 这里在/etc/passwd过滤行开头为rootxxx的行结果没有找到即使语法没有错误但 是逻辑上有“否定”的意思,所以返回值为非零。 22.4数值运算 在写脚本时,有时我们经常要做一些数学运算。数学运算的符号如下。 1表示加。 2-表示减。 3*表示乘。 4/表示除。 5**表示次方。 进行数学运算的表达式有$(())、$[]、let等,命令如下。 [rootpp yy]# echo $((23)) 5 [rootpp yy]# 其中$(O)和$[]的用法是一样的如果不用这样的表达式看如下代码。 [rootpp yy]# echo 2**3 2**3 [rootpp yy]# 可以实现定义aa为整数类型然后再做数学运算命令如下。 [rootpp yy]# declare -i aa [rootpp yy]# aa12 [rootpp yy]# echo $aa 3 [rootpp yy]# 首先declare -i aa把aa定义为一个整数所以12等于3,然后赋值给aa.所以aa的值为3。 以上表达式不能求得小数如果要得到小数需要使用 bc 命令用法如下。 1 echo scaleN ; 算法 | bc 这里N是一个数字,表示小数点后面保留几位。 计算2/3小数点后面保留3位命令如下。 [rootpp yy]# echo scale3 ; 2/3 | bc .666 [rootpp yy]# 这里得到的结果是0.666整数部分的0没有显示。 计算7/6小数点后面保留3位命令如下。 [rootpp yy]# echo scale3 ; 7/6 | bc 1.166 [rootpp yy]#
http://www.w-s-a.com/news/198235/

相关文章:

  • 郑州做网站齿轮网站排名怎么做 site
  • 船员专用网站开发建议wordpress 图片占用id
  • 桌面软件开发跟网站开发那个上海网站备案在哪里查询
  • 罗湖网站建设陕西省建设网官网住房和城乡厅官网
  • 做一个网站的详细教学wordpress 忘记用户名密码
  • 建设银行的网站是多少wordpress添加新页面跳转
  • 网站设计费用抓取网站访客qq号码
  • 驾校视频网站模板郑州网站建设价格
  • 上海 有哪些做网站的公司成都企业网站备案流程
  • 移动端快速建站的方法青海公司网站建设
  • 网站重新搭建程序要多少钱移动互联网应用的使用情况
  • 学建站论坛给别人做网站怎么赚钱吗
  • 响应式网站代码校友会网站建设的目的
  • 北京公司网站网站建设html模板
  • 专门做医疗器械的网站免费网页制作系统团队
  • 网站开发技术 html临夏网站建设
  • flash网站模板免费下载拍卖网站开发多少钱
  • 北京网站建设制作颍州网站建设
  • 网站制作报价表做网站上海公司
  • 简洁大气蓝色文章资讯网站百度搜索广告推广
  • 河南建设工程协会网站网站收银系统建设
  • 网站制作 服务企业网站案例展示
  • 咸宁网站建设wordpress手动降级
  • 昆明做网站建设怎么样做网站赚钱全攻略
  • 企业网站建设实战教程微信如何注册小程序
  • 做一件代发网站百度seo服务
  • 小说网站开发 公司可以做行程的网站
  • 古交市网站建设公司apk连接wordpress
  • 网页 网 址网站区别wordpress菜单居右
  • 网站建设搭建运营一台云服务器做多个网站