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

网站产品整合推广手机开发小程序

网站产品整合推广,手机开发小程序,建设企业网站企业网上银行,烟台网站建设威企汇互联见效付款文章目录 1. 总体认识1.1. Shell概述1.2. 第一个Shell脚本1.3. 注释 2. 变量2.1. 定义变量2.2. 使用变量2.3. 只读变量2.4. 删除变量2.5. 变量类型2.5.1. 字符串变量2.5.2. 整数变量2.5.3. 数组变量2.5.4. 环境变量2.5.5. 特殊变量 3. 输出3.1. echo命令3.2. printf命令 4. 运算… 文章目录 1. 总体认识1.1. Shell概述1.2. 第一个Shell脚本1.3. 注释 2. 变量2.1. 定义变量2.2. 使用变量2.3. 只读变量2.4. 删除变量2.5. 变量类型2.5.1. 字符串变量2.5.2. 整数变量2.5.3. 数组变量2.5.4. 环境变量2.5.5. 特殊变量 3. 输出3.1. echo命令3.2. printf命令 4. 运算符4.1. 运算表达式4.2. 条件表达式4.2.1. 关系运算符4.2.2. 逻辑运算符4.2.3. 字符串运算符4.2.4. 文件测试运算符 5. 流程控制5.1. 条件语句5.1.1. if语句5.1.2. case多选择语句 5.2. 循环语句5.2.1. for循环5.2.2. while循环5.2.3. 无限循环5.2.4. until循环5.2.5. 跳出循环 6. 函数7. 输入输出重定向8. 文件包含9. 常用shell命令9.1. alias 1. 总体认识 1.1. Shell概述 Shell是一个用C语言编写的程序这个程序提供了一个界面用户通过这个界面可以访问操作系统内核的服务。Shell既是一种命令语言又是一种解释型的程序设计语言。Shell脚本shell script是一种为shell编写的脚本程序。Shell编程只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux的Shell种类众多常用的有Bourne Shell/usr/bin/sh或/bin/sh、Bourne Again Shell/bin/bash、C Shell/usr/bin/csh、K Shell/usr/bin/ksh等等其中Bourne Again Shell是Bourne Shell的增强版本兼容性更好且提供了更多的特性和功能。由于易用和免费Bash是大多数Linux系统默认的Shell。 1.2. 第一个Shell脚本 文件名test.sh#!/bin/bash echo Hello World!shell脚本名*.sh。第一行使用#!指定解释器路径。第二行echo语句的作用是在终端显示指定内容。 运行Shell脚本 作为可执行程序 chmod x ./test.sh # 使脚本具有执行权限 ./test.sh # 执行脚本作为解释器参数 bash test.sh1.3. 注释 单行注释以#开头的行会被解释器忽略。多行注释 :EOF Here文档中的内容不会被执行 EOF: delimiterdocument delimiter: 冒号代表空命令后面的内容不会执行2. 变量 变量是存储的数据值的名称。 2.1. 定义变量 variablevalue注意变量名和等号之间不能有空格。变量命名要求 只由字母、数字和下划线组成不能以数字开头。避免使用Shell关键字。习惯上常量的变量名通常使用大写字母 2.2. 使用变量 variablevalue echo $variable echo ${variable}变量名外面的花括号是可选的加花括号是为了帮助解释器识别变量的边界。已定义的变量可以被重新定义。variablevalue1 echo $variable variablevalue2 echo $variable2.3. 只读变量 variablevalue readonly variable2.4. 删除变量 variablevalue unset variable变量被删除后不能再次使用。unset 命令不能删除只读变量。 2.5. 变量类型 2.5.1. 字符串变量 str1hello str2hello str3hello变量通常被视为字符串。可以使用单引号 ’ 或双引号 来定义字符串单引号字符串的限制 单引号字符串里的任何字符都会原样输出不能进行变量值的替换。单引号字符串中不能出现单独一个的单引号对单引号使用转义符后也不行但可成对出现作为字符串拼接使用。 双引号字符串nameworld str\Hello,$name! \\n echo -e $str双引号字符串中可以进行值的替换。双引号字符串中可以出现转义字符。使用echo语句显示\n要添加参数-e。 拼接字符串 nameworld# 使用双引号 str1hello, $name! str2hello, $name! # 推荐# 使用单引号 str3hello, $name!获取字符串的长度 strhello echo ${#str} echo ${#str[0]}提取子字符串 strHello, World! echo ${str:1:4} # 输出ello查找子字符串 strHello, World# 获得字符l,o第1次出现时已经读取的字符串部分 x${str%%[lo]*} # x的值为He # x的长度加1即为首次出现指定字符的索引 echo $((${#x}1)) # 输出32.5.2. 整数变量 declare -i intvar3 typeset -i intvar3这样的声明告诉Shell将intvar视为整数如果尝试将非整数值赋给它Shell会尝试将其转换为整数。 2.5.3. 数组变量 数组变量可以在一个变量中存储多个值。整数索引数组array1(1 2 3 4 5) array2(12hello ) array3[0]value0 array3[2]value2可以不使用连续的下标而且下标的范围没有限制。索引数组元素${数组名[索引]}获取所有元素${数组名[*]}或${数组名[]}两者的区别是后者常用于迭代。获取数组的长度${#数组名[*]}或${#数组名[]}获取数组单个元素的长度${#数组名[索引]} 关联数组declare -A asarray asarray[name]John asarray[age]30declare -A site([google]www.google.com[baidu]www.baidu.com )键可以是任意的字符串或者整数键是唯一的使用键访问关联数组元素数组名[键]获得所有值${数组名[*]}或${数组名[]}两者的区别是后者常用于迭代。获得所有键${!数组名[*]}或${!数组名[]}两者的区别是后者常用于迭代。获得数组长度${#数组名[*]}或${#数组名[]} 2.5.4. 环境变量 环境变量是由操作系统或用户设置的特殊变量用于配置Shell的行为和影响其执行环境。PATH变量包含了操作系统搜索可执行文件的路径将路径添加PATHexport PATH${your_path}:$PATH直接在终端执行是临时设置要永久设置则须写入配置文件 当前登陆用户配置文件~/.bashrc所有用户的配置文件/etc/profile写入后要重新加载source ${config_path} 添加其他环境变量与PATH变量类似 2.5.5. 特殊变量 特殊变量作用$0脚本名称$1, $2, …脚本参数$#传递给脚本的参数数量$*以一个单字符串接收所有向脚本传递的参数$以$1 “ 2 … 2 … 2…n” 的形式接收所有参数常用于迭代$?上一个命令的退出状态0表示没有错误其他任何值表明有错误。$$脚本运行的当前进程ID号$!后台运行的最后一个进程的ID号$-显示Shell使用的当前选项与set命令功能相同。 3. 输出 3.1. echo命令 命令格式 echo string显示普通字符串 echo It is a test echo It is a test显示转义字符 echo \It is a test\ echo \It is a test\显示变量 # 标准输入中读取一行不允许转义到变量name read -r name echo $name is good!显示换行 echo -e OK! \n # -e 开启转义 echo ******显示不换行 echo OK! \n # 原样输出\n echo ****** echo -e OK! \c # -e 开启转义但不换行 echo ******原样输出字符串 echo $name\显示命令执行结果 echo Date: $(date)3.2. printf命令 printf命令模仿C程序库里的printf()函数。命令格式 printf format-string [arguments...]格式化字符串参照C语言格式只指定了一个参数但多出的参数仍然会按照该格式输出format-string被重用如果没有arguments那么%s用NULL代替%d用0代替格式化字符串中的%b格式 用于参数中存在\n时输出换行。用%s会原样输出\n。仅在%b格式下\c可以抑制不显示输出结果中任何结尾的换行字符而且其后的所有内容全部忽略。用%s会原样输出\c。 4. 运算符 4.1. 运算表达式 运算表达式的使用val$((2 2)) echo $val$((...))中不用考虑空格的问题变量不用加$号。支持的运算 运算符含义举例加法$((a b))-减法$((a - b))*乘法$((a * b))/除法$((a / b))%取余$((a % b))自增与C相同$((a))--自减与C相同$((a--))赋值右值作为结果$((a b))比较相等相等为1否则为0$((a - b))!比较不相等不相等为1否则为0$((a - b))比较大于大于为1否则为0$((a - b))比较小于小于为1否则为0$((a - b))比较大于等于大于等于为1否则为0$((a - b))比较小于等于小于等于为1否则为0$((a - b)) 4.2. 条件表达式 条件表达式的使用a2 b1if test $a -eq $b thenecho 相等 elif [ $a -ge $b ] thenecho 大于 elif (($a $b))echo 小于 elseecho 错误 fi条件表达式通常用于流程控制中条件判断可以使用test 条件表达式条件判断可以使用[ 条件表达式 ]注意要有空格条件判断可以使用((条件表达式))此时可以不用考虑空格 4.2.1. 关系运算符 只支持数字不支持字符串。 运算符含义举例-eq检测两个数是否相等相等返true。[ $a -eq $b ]-ne检测两个数是否不相等不相等返回true。[ $a -ne $b ]-gt检测两个数是否大于右边的如果是则返回true。[ $a -gt$b ]-lt检测两个数是否小于右边的如果是则返回true。[ $a -lt $b ]-ge检测两个数是否大于等于右边的如果是则返回true。[ $a -ge $b ]-le检测两个数是否小于等于右边的如果是则返回true。[ $a -le $b ] 4.2.2. 逻辑运算符 优先级! ||存在短路运算。 运算符含义举例逻辑与运算[[ $a -lt 100 $b -gt 15 ]]||逻辑或运算[[ $a -lt 100 || $b -gt 15 ]]!逻辑非运算[[ ! $a -lt 100 ]] 4.2.3. 字符串运算符 运算符含义举例检测两个字符串是否相等相等返回 true。[ $a $b ]!检测两个字符串是否不相等不相等返回 true。[ $a ! $b ]-z检测字符串长度是否为0为0返回 true。[ -z $a ]-n检测字符串长度是否不为0不为0返回 true。[ -n $a ]$检测字符串是否不为空不为空返回 true。[ $a ] 4.2.4. 文件测试运算符 用于检测Unix文件的各种属性。 运算符含义举例-b检测文件是否是块设备文件如果是则返回 true。[ -b $file ]-c检测文件是否是字符设备文件如果是则返回 true。[ -c $file ]-d检测文件是否是目录如果是则返回 true。[ -d $file ]-f检测文件是否是普通文件既不是目录也不是设备文件如果是则返回 true。[ -f $file ]-g检测文件是否设置了 SGID 位如果是则返回 true。[ -g $file ]-k检测文件是否设置了粘着位(Sticky Bit)如果是则返回 true。[ -k $file ]-p检测文件是否是有名管道如果是则返回 true。[ -p $file ]-u检测文件是否设置了SUID位如果是则返回 true。[ -u $file ]-r检测文件是否可读如果是则返回 true。[ -r $file ]-w检测文件是否可写如果是则返回 true。[ -w $file ]-x检测文件是否可执行如果是则返回 true。[ -x $file ]-s检测文件是否为空文件大小是否大于0不为空返回 true。[ -s $file ]-e检测文件包括目录是否存在如果是则返回 true。[ -e $file ]-S判断某文件是否 socket。[ -S $file ]-L检测文件是否存在并且是一个符号链接。[ -L $file ] 5. 流程控制 5.1. 条件语句 5.1.1. if语句 最展开的格式 if 条件判断 then命令1命令2... elif 条件判断 then命令1命令2... else命令1命令2... fi写成一行要加分号分隔 if 条件判断; then 命令; fi if 条件判断; then命令1命令2... fi5.1.2. case多选择语句 case 值 in 模式1)command1command2...commandN;; 模式2)command1command2...commandN;;*command1command2...commandN;; esac5.2. 循环语句 5.2.1. for循环 最展开的格式 for var in item1 item2 do命令1命令2... done写成一行要加分号分隔 for var in item1 item2; do 命令1; 命令2; done5.2.2. while循环 一般格式 while 条件判断 do命令1命令2... done循环读取键盘输入 while read -r site doecho 是的$site 是一个好网站 done5.2.3. 无限循环 while true do命令 done5.2.4. until循环 先执行再判断 until 条件判断 do命令 done5.2.5. 跳出循环 break是跳出本级循环continue跳出本次循环 6. 函数 格式 function funname [()] {action[return int;] }[ function ] funname () {action[return int;] }所有函数在使用前必须定义。调用函数仅使用其函数名即可。返回值 如果不return语句将以最后一条命令运行结果作为返回值。只能返回0-255。函数返回值在调用该函数后通过$?来获得。 函数参数与脚本的命令行参数相同 7. 输入输出重定向 文件描述符 0表示标准输入STDIN1表示标准输出STDOUT2表示标准错误输出STDERR 空设备文件nul指向/dev/null输出重定向到文件覆盖原文件。command file输出以追加的方式重定向到文件command file合并标准输出和标准错误输出并重定向到文件command file 21错误输出重定向到文件command 2 file将输入重定向为文件command fileHere文档将输入重定向为两个分隔符之间的内容command delimiterdocument delimiter对标准输入和标准输出都进行重定向command file1 file2屏蔽命令输出command nul command /dev/null8. 文件包含 . filename # 注意有空格 source filename上述语句会先执行指定shell脚本但是保留shell脚本执行结束会清理的变量等内容 9. 常用shell命令 9.1. alias 用于设置指令的别名语法 alias [别名][指令名称]注意多条指令用分号分隔
http://www.dnsts.com.cn/news/4964.html

相关文章:

  • 做网站前需要准备什么条件用sqlite3做网站
  • 做网站的公司应该税率多少wordpress调用子栏目
  • 贵阳做网站的大公司wordpress社交系统主题
  • wordpress 站内链接哪些网站建设公司
  • 直播网站开发价格济南手工网站建设
  • 求推荐做ppt的网站四合一网站
  • 最好的网站管理系统物流的网站模板
  • 建设网站建设什么征琴旅游网站排行榜前十名官网
  • 华艺网站建设网络营销课程总结与心得体会
  • 灰色行业老域名做网站不收录云南建设网站
  • 怎样才能做好网站优化企业网站建设的误区主要有
  • 商城网站建设哪家好wordpress 后台图标
  • 与建设通相关的网站设计接单渠道
  • 网站开发能进无形资产吗中国建筑集团有限公司有几个局
  • 网站开发 无代码彩票网站怎么样建设
  • 什么网站做招聘收录好建立企业网站的目的和意义
  • 做网站在线视频如何添加关于做网站的前言
  • 网站建设推广注册公司月刊可以用什么网站做
  • 企业网站建设东莞公司变更经营范围需要哪些资料
  • 带数据库的网站做关于进行网站建设费用的请示
  • 如何让订阅号菜单做微网站wordpress form 生成
  • 模板网站哪个好wordpress page template
  • 郑州网站建设wordpress登录之后强制绑定邮箱
  • 新站seo外包如何构建自己的网站
  • 做网站付款方式营销网站模版
  • 什么是网站收录苏州门户网站建设电话
  • 定襄网站建设婚纱网站设计目标
  • 一起做网站17广告设计图片网站
  • 佛山营销网站建设服务在哪个网站上做外贸好
  • 网站导航栏特效企业工商登记信息查询系统