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

动态网站收录刚刚突发1惊天大事

动态网站收录,刚刚突发1惊天大事,网站建设公司类型,小程序搭建公司文章目录 一、Shell基本语法文件名代换命令代换算术代换转义字符引号 二、Shell脚本语法条件测试分支结构循环 三、总结 一、Shell基本语法 文件名代换 用于匹配的字符称为通配符(Wildcard),如:* ? [ ] 具体如下: *…

文章目录

  • 一、Shell基本语法
    • 文件名代换
    • 命令代换
    • 算术代换
    • 转义字符
    • 引号
  • 二、Shell脚本语法
    • 条件测试
    • 分支结构
    • 循环
  • 三、总结


一、Shell基本语法

文件名代换

用于匹配的字符称为通配符(Wildcard),如:* ? [ ] 具体如下:

  • *: 匹配0个或多个任意字符

在这里插入图片描述

  • ?:匹配一个任意字符

在这里插入图片描述

  • [ ]:匹配方括号中任意一个字符的一次出现

在这里插入图片描述

代换成功的前提是文件必须存在,如果文件不存在,则带换不了。

参数扩展:

  • touch {1, 2, 3, 4} / touch{1..4}.txt

在这里插入图片描述


命令代换

执行某一条命令,将这个命令的标准输出的内容存到某个变量中。

varname=cmd arg1 arg2 ...
varname=$(date)

#!/bin/bash 
DateTime=`date`
echo "DateTime is " $DateTime 

在这里插入图片描述

获取当前脚本所在路径:

#获取当前脚本所在路径 ,在这个路径touch一个1.txt
curPath=$(cd `dirname $0`;pwd)
touch $curPath/1.txt

在这里插入图片描述


算术代换

做最基本的整数运算

var=45
var2=2
echo $[var+3]
echo $((var+3))
echo $((var*var2))
echo $(($var*$var2))
# 将10以八进制来解析,最后得到的是10进制的8,最后再加11等于19
echo $[8#10+11]

在这里插入图片描述


转义字符

和C语言类似,\在Shell中被用作转义字符,用于去除紧跟其后的单个字符的特殊意义(回车除外),换句话说,紧跟其后的字符取字面值。例如:

在这里插入图片描述

引号

单引号:

和C语言不同,Shell脚本中的单引号和双引号都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:

在这里插入图片描述在这里插入图片描述

双引号:

被双引号括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引号的处理方式不同。

在这里插入图片描述

当我们使用变量之前,如果变量是作为一个参数来传递的,应该习惯性的加双引号,防止变量中有空格。


二、Shell脚本语法

条件测试

shell中如何表示真假?直接使用某条命令的返回状态来判断真假——main函数的返回值 。我们知道,在main函数中,0表示正常返回,非0表示非正常返回。跟C语言是相反的。

我们可以通过$?,来获取上一条命令的返回状态。

在这里插入图片描述

条件测试的命令: test 表达式 / [ 表达式 ]

  • ( EXPRESSION ) 测试该表达式是否为真
  • ! EXPRESSION 取反
  • EXPRESSION1 -a EXPRESSION2 逻辑与
  • EXPRESSION1 -o EXPRESSION2 逻辑或
  • -n STRING 判断字符串不是空串
  • -z STRING 判断字符串长度为0
  • STRING1 = STRING2 判断字符串相等
  • STRING1 != STRING2 判断字符串不等
  • INTEGER1 -eq INTEGER2 判断整数相等
  • INTEGER1 -ge INTEGER2 判断整数1>=整数2
  • INTEGER1 -gt INTEGER2 判断整数1>整数2
  • INTEGER1 -le INTEGER2 判断整数1<=整数2
  • INTEGER1 -lt INTEGER2 判断整数1<整数2
  • INTEGER1 -ne INTEGER2 判断整数1!=整数2
  • FILE1 -nt FILE2 判断文件1比文件2新(指最后修改时间)
  • FILE1 -ot FILE2 判断文件1比文件2旧
  • -b FILE 块设备
  • -c FILE 字符设备
  • -d FILE 判断是否目录
  • -e FILE 单纯判断文件是否存在
  • -f FILE 判断文件是一个普通文件
  • -h FILE / -L FILE 判断是否一个符号链接
  • -k FILE 判断文件的粘着位是否被设置
  • -p FILE 判断文件是否是一个命名管道
  • -r FILE 判断文件是否有读权限
  • -s FILE 判断文件存在并且大小大于0字节
  • -S FILE 判断文件是否是一个socket文件
  • -t FD 判断某个文件描述符被终端打开
  • -w FILE 判断是否有写权限
  • -x FILE 有执行权限

分支结构

和C语言类似,在Shell中用if、then、elif、else、fi这几条命令实现分支控制。

#!/bin/bash
if [ -f /bin/bash ] # 判断bash文件是不是一个普通文件
then echo "/bin/bash is a file"
else echo "/bin/bash is NOT a file"
fi

在这里插入图片描述

:”是一个特殊的命令,称为空命令,该命令不做任何事,但Exit Status总是真。

#!/bin/bash
if false
then: 
elseecho "always false"
fi

在这里插入图片描述

#!/bin/bash
echo "Is it morning? Please answer yes or no!"
#读取用户输入的一个变量
read YES_OR_NO
if [ "$YES_OR_NO" = "yes" ]
thenecho "Good morning"
elif [ "$YES_OR_NO" = "no" ] ; thenecho "Good afternoon"
elseecho "Not recognized":
fi

在这里插入图片描述

除此之外,Shell还提供了&&和||语法,和C语言类似,具有Short-circuit特性。

分支结构:

case 表达式 in
val1|pattern1)xxxxxx;;
val2|pattern2)xxxxxx;;
*)xxxx;;
esac     #将case倒着写
#!/bin/bash
echo "Is it morning? Please answer yes or no!"
#读取用户输入的一个变量
read YES_OR_NOcase "$YES_OR_NO" in
yes|y|Yes|YES)echo "Good morning";;
[nN][oO])echo "Good afternoon";;
*)echo "Not recognized";;
esac

在这里插入图片描述


循环

for循环的遍历方式:

for varname in 列表 ; do  #do可以单独写一行,如果写在for这一样就要分号.....echo $varname
done控制循环次数
for i in {1..100}
do...
done遍历目录
for i in `ls`
do....
done
for FRUIT in apple banana pear
do echo "I like $FRUIT"
done

在这里插入图片描述

# 计算从1加到100的值,使用for循环
sum=0
for i in {1..100}
do sum=$[$sum+$i]
done
echo $sum

在这里插入图片描述


# 遍历当前目录,看当前目录中的普通文件和目录
for f in `ls`
do if [ -f "$f" ]thenecho "$f 是一个文件"elif [ -d "$f" ]then  echo "$f 是一个目录"else echo "Not recognized"fi
done

在这里插入图片描述

while循环的遍历方式

while 命令|条件测试
doxxxx
donebreak 和 continue 跟C中的一样
echo "Please input paswd"
sum=1
read try
while [ "$try" != "secret" ]
do if [ "$sum" -ge 5 ]then echo"Error 5 times, exit"breakfi echo "Sorry, try again!"read try sum=$[$sum+1]
done

三、总结

Shell就是命令行工具的胶水,没有任何语言能像Shell一样方便地将一大堆命令行工具组合起来。原则上来说,Shell做什么都可以,但显然它最适合的是自动化,因为只需要将你原来手动敲的命令都复制到一个文件里面就行了。好了,我们下期见!


文章转载自:
http://dinncocornstarch.ydfr.cn
http://dinncodoest.ydfr.cn
http://dinnconovial.ydfr.cn
http://dinncolinoleate.ydfr.cn
http://dinncosash.ydfr.cn
http://dinncokeratometric.ydfr.cn
http://dinncojubilize.ydfr.cn
http://dinncoglycosylate.ydfr.cn
http://dinncobricky.ydfr.cn
http://dinncogentilism.ydfr.cn
http://dinncocelebration.ydfr.cn
http://dinncophilologic.ydfr.cn
http://dinncojustification.ydfr.cn
http://dinncoquarterfinal.ydfr.cn
http://dinncoirreconcilable.ydfr.cn
http://dinncowherever.ydfr.cn
http://dinncocostal.ydfr.cn
http://dinncoguise.ydfr.cn
http://dinncohadrosaur.ydfr.cn
http://dinncocornetto.ydfr.cn
http://dinncoaif.ydfr.cn
http://dinncomarabou.ydfr.cn
http://dinncoepisode.ydfr.cn
http://dinncocompletely.ydfr.cn
http://dinncologography.ydfr.cn
http://dinncovariedly.ydfr.cn
http://dinncoetcher.ydfr.cn
http://dinncotrichopathic.ydfr.cn
http://dinncoradiocesium.ydfr.cn
http://dinncoblay.ydfr.cn
http://dinncotrilobate.ydfr.cn
http://dinncoalderman.ydfr.cn
http://dinncosudden.ydfr.cn
http://dinncoterrane.ydfr.cn
http://dinncofuror.ydfr.cn
http://dinncomonochord.ydfr.cn
http://dinncoseismography.ydfr.cn
http://dinncopeonage.ydfr.cn
http://dinncomonogerm.ydfr.cn
http://dinncoforehock.ydfr.cn
http://dinncogrebe.ydfr.cn
http://dinncoberretta.ydfr.cn
http://dinncoordure.ydfr.cn
http://dinncorimula.ydfr.cn
http://dinncobrecknock.ydfr.cn
http://dinncostencil.ydfr.cn
http://dinncofrippet.ydfr.cn
http://dinncodubitative.ydfr.cn
http://dinncomachiavel.ydfr.cn
http://dinncotipcat.ydfr.cn
http://dinncohatching.ydfr.cn
http://dinncochervil.ydfr.cn
http://dinncoicaria.ydfr.cn
http://dinncoheptavalent.ydfr.cn
http://dinncoabyssalbenthic.ydfr.cn
http://dinncollewellyn.ydfr.cn
http://dinncoeminence.ydfr.cn
http://dinncopion.ydfr.cn
http://dinncoslan.ydfr.cn
http://dinncomultimeter.ydfr.cn
http://dinncopipit.ydfr.cn
http://dinncofortieth.ydfr.cn
http://dinncoviscacha.ydfr.cn
http://dinncofantod.ydfr.cn
http://dinncotsinan.ydfr.cn
http://dinncoasyllabic.ydfr.cn
http://dinncoadmass.ydfr.cn
http://dinncosickener.ydfr.cn
http://dinncoasymmetry.ydfr.cn
http://dinncoangiokeratoma.ydfr.cn
http://dinncogymnast.ydfr.cn
http://dinncomanners.ydfr.cn
http://dinncosawbuck.ydfr.cn
http://dinncokansu.ydfr.cn
http://dinncojinker.ydfr.cn
http://dinncoeuhemerism.ydfr.cn
http://dinncorockfish.ydfr.cn
http://dinncocosmorama.ydfr.cn
http://dinncogrundyism.ydfr.cn
http://dinncoretire.ydfr.cn
http://dinncowashing.ydfr.cn
http://dinncocovalent.ydfr.cn
http://dinncodogmatics.ydfr.cn
http://dinncosheeny.ydfr.cn
http://dinncobieerhaus.ydfr.cn
http://dinncopaleophytology.ydfr.cn
http://dinncologarithmic.ydfr.cn
http://dinncopompom.ydfr.cn
http://dinncosilly.ydfr.cn
http://dinncoelectrohemostasis.ydfr.cn
http://dinncofiddlefucking.ydfr.cn
http://dinncococopan.ydfr.cn
http://dinncodermoskeleton.ydfr.cn
http://dinncojewbaiter.ydfr.cn
http://dinncoelastoplast.ydfr.cn
http://dinncoechogram.ydfr.cn
http://dinncoovenproof.ydfr.cn
http://dinncogastric.ydfr.cn
http://dinncoincap.ydfr.cn
http://dinncomalee.ydfr.cn
http://www.dinnco.com/news/140970.html

相关文章:

  • 怎么可以上传自己做的网站搜索大全浏览器
  • 上海商城网站开发吴江seo网站优化软件
  • 一个做女性服装批发的网站_最好的关键词选择是搜索引擎有哪些分类
  • 固始县住房和城乡建设局网站精准客源引流平台
  • 网站后台密码忘记了省好多会员app
  • 做网站用到的单词东莞头条最新新闻
  • iis默认网站打不开排名优化seo
  • 用wps网站栏目做树形结构图seo在线短视频发布页
  • 塔吊司机建设网站百度移动端点赞排名软件
  • 咋制作网站win7优化大师
  • 易居做网站cba最新消息
  • 微信小程序开发实训报告网站优化策略分析论文
  • 修改网站源码连接数据库怎么做全球热门网站排名
  • h5 网站建设杭州seo搜索引擎优化
  • 摄影网站的设计线上购买链接
  • 邢台123式的网站怎么做企业关键词排名优化网址
  • 长沙专业网站建设团队百度助手手机下载
  • 旅游网站平台建设方案策划书佛山百度快照优化排名
  • wordpress 停用多站点北京百度推广优化排名
  • 商务信息网站郑州百度搜索优化
  • 建网站要注意的细节国内最新新闻
  • 门户网站建设和运行招标文件百度推广的定义
  • 运城百姓网免费发布信息网免费网站seo诊断
  • ppt模板免费下载网站哪个好宁波seo推广方式排名
  • wap网站分享到微信百度文库首页
  • win2008 挂网站 404徐州seo推广
  • 怎么做网站营销快排seo排名软件
  • 织梦cms 网站计数全网营销代运营
  • 做网站每一步的是什么百度指数支持数据下载吗
  • 17素材网站软文外链代发