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

武汉网站建设公司哪里有培训机构排名

武汉网站建设公司哪里有,培训机构排名,高唐网站建设公司,营销型网站定制目录 一、Shell运算符 1.1 表达式expr 1.2 运算操作 1.3 操作实例 二、Shell条件判断 2.1 基本语法 2.2 值、权限、类型、多条件判断 三、Shell流程控制 3.1 if 流程语法 3.2 case 流程语法 3.3 for 流程语法 3.4 内部运算符 3.5 while循环流程语法 四、Shell读…

目录

一、Shell运算符

1.1 表达式expr 

1.2 运算操作

1.3 操作实例

二、Shell条件判断

2.1 基本语法

2.2 值、权限、类型、多条件判断

三、Shell流程控制

3.1 if 流程语法

3.2 case 流程语法

3.3 for 流程语法

3.4 内部运算符

3.5 while循环流程语法

四、Shell读取控制台输入

五、Shell函数

5.1 系统函数

5.2 自定义函数


一、Shell运算符

我们将Shell当成一门编程语言来学习,那么就一定需要有运算符
在Shell中,还存在 expr 表达式,可以用于做运算
在Shell中,运算需要使用 $((a+b)) 或者 $[a+b] 的形式

1.1 表达式expr 

命令符 expr是对应基础的加减乘除操作识别,但是乘法和除法前面要加反斜杠 ‘\’ ,并且运算符前后需要空格,如以下例子:

expr 10 + 5

expr 8 - 8

expr 2 \* 5

expr 6 \/ 3

1.2 运算操作

但是如果有同学说我们想要把这个值赋给一个变量应该怎么写,简单,直接用$替换即可,用法如下:

a=$(expr 10 +5)

a='expr 10 + 9' (×)

a=$((5+5))

a=$[5+8]

其中第二种方法相当于一个字符串了,linux并不会识别expr命令

1.3 操作实例

1、计算(3+8)*14的值

s=$[(3+8)*14]

 

2、创建 add.sh ,在执行的时候,通过传递参数的形式实现加法效果

#!/bin/bash
sum=$[$1 + $2]
echo sum=$sum

二、Shell条件判断

Shell中也有条件表达式,也就是比较两个值是否相等

2.1 基本语法

test 表达式 1
[ 表达式 ]  注意:中括号前后需要有空格

具体例子如下:

2.2 值、权限、类型、多条件判断

在条件判断中,除了相等于不等的判断,还有一些其他的判断

两个值比较

表达式                 含义                         表达式                 含义
-eq                       等于(equal)                 -ne                 不等于(not equal)
-lt                         小于(less than)           -le                  小于等于(less equal)
-gt                        大于(greater than)      -ge                 大于等于(greater equal)

文件权限判断

-r 有读的权限(read)
-w 有写的权限(write)
-x 有执行的权限(execute)

文件类型判断

-e 文件存在(existence)
-f 文件存在并且是一个文件类型(file)
-d 文件存在并且是一个目录类型(directory)

多条件判断

&& 与的关系,两者都成立
|| 或的关系,两者有一个成立

温馨提示

&& 表示前一个条命令执行成功之后,在执行第二个条件
|| 表示前一个条命令执行失败之后,再执行第二个条件
由此,我们可以衍生出来,类似三元运算符的形式

例如:加入我们想测试a是否等于b,如果等于则输出a=b,否则输出a!=b

[ $a -eq $b ] && echo '$a=$b' || echo "$a!=$b" 

三、Shell流程控制

流程控制语句是程序中的重点知识,掌握了流程控制语句,程序的基本架构就可以搭建起来了

3.1 if 流程语法

基本语法

if [ 条件判断 ]; then

        语句
fi

# 或者下面这种

if [ 条件判断 ]
then
        语句
fi

这只是单一的if,我们需要else的语法如下

if [ 条件判断 ]
then
        语句
else
        语句
fi

实例,比如说我们输入一个数,如果大于18则输出该岁数已经成年,反之则输出该岁数还未成年

#!/bin/bash
if [ $1 -gt 18 ]
then 
    echo '该岁数已经成年'
else
    echo '该岁数还未成年'
fi

要是else if那种语法呢,语法结构如下:

if [ 条件判断 ]
then
        语句
elif [ 条件判断 ]
then
        语句
else
        语句
fi

实例:比如说我们输入一个数,小于18则输出未成年,大于等于18小于35则输出青年人,大于等于35小于60则输出壮年人,否则输出老年人

#!/bin/bash
if [ $1 -lt 18 ]
then
    echo '未成年'
elif [ $1 -lt 35 ]
then
    echo '青年人'
elif [ $1 -lt 60 ]
then
    echo '壮年人'
else
    echo '老年人'
fi

3.2 case 流程语法

if 如果遇到多个条件,写起来会很麻烦,可以使用  case 改写;语法结构如下:

case $变量名 in
"值1")
        语句
;;
"值2")
        语句
;;
#...省略其他分支...
*)
        语句
;;
esac

注意事项

case行结尾必须为单词"in",每一个模式匹配必须以右括号")"结束
双分号 ";;" 表示命令序列结束,相当于跳出当前判断语句
最后 "*)" 表示默认模式结尾,不符合最终的出口 

例子:输入一个数,如果输入的是8,88,888则原样输出,否则输出为其他数字

#!/bin/bash
case $1 in
"8")
    echo $1
;;
"88")
    echo $1
;;
"888")
    echo $1
;;
*)
    echo '其他数字'
esac

3.3 for 流程语法

循环语句用于重复执行某个操作

for语句就是循环命令,可以指定循环的起点、终点和终止条件

不过for语句有两种不同写法,分别如下:

基本语法1:

for (( 初始值; 循环控制条件; 变量变化))
do
        语句
done

例子:比如说我们想计算1到100的累和,实现如下:

#!/bin/bash
for(( i=0;i<=100;i++ ))
do
    sum=$[$sum+$i];
done
echo $sum

基本语法2:

for 变量 in 值1 值2 值3...
do
        语句
done

例子:列举出linux,windows,macos等操作系统

#!/bin/bash
for os in linux windows macos
do
    echo $os
done

3.4 内部运算符

在shell中, {} 是内部运算符, {} 表示一个序列,例如,从1写到100:{1..100}

那么再用for的语法2来计算1-100的累和

#!/bin/bash
for i in {1..100}
do
    sum=$[$sum+$i]
done
echo $sum

$* 和 $@
$* 和 $@ 非常相似,都代表命令行所有的参数,但是 $* 把参数看成是一个整体,例如 123 456 。而 $@ 把每个参数区分对待,例如换行显示

例如下面这个例子,将输入的数用上述两种方式输出体现出他们的区别:

#!/bin/bash
echo "=====$*====="
for param in "$*"
do
    echo $param
done
echo "=====$@====="
for paprm in "$@"
do 
    echo $paprm
done

注意:在没有循环遍历时候,两者效果一致

3.5 while循环流程语法

循环语句除了 for 之外,还有一个 while 循环

基本语法

while [ 条件判断 ]
do
        语句
done

例子:比如说我们输入一个数,然后输出从1到该数的累和

#!/bin/bash
a=1
while [ $a -le $1 ]
do
    sum=$[$sum+$a]
    a=$[$a+1]
done
echo '1到'$1’的累和为:‘$sum

四、Shell读取控制台输入

读取控制台信息,既简单又很实用

基本语法

read 选项 参数 

选项:
-p:指定读取值时候的提示符
-t:指定读取值时候的等待时间(秒) 如果不添加  -t 表示一直等待
参数:
变量:指定读取值的变量名

例子如图:

假如我们让他只能等待两秒看看是否自动结束:

OK,确实如此,最后你们看到那个t其实是没有的,是因为我点击光标出现的提示符,并不是我的输入。

五、Shell函数

函数的本质就是一段可以反复调用的代码块
在Shell中,函数细分为系统函数和自定义函数

5.1 系统函数

我们可以测试一些系统命令,例如使用率非常高的  date ,我们还可以获取时间戳  date +%s
当我们需要打印写一些系统日志信息文件的时候,文件的命名规则通常在最后会添加上时间戳 

温馨提示
这里我们使用的系统命令(或者系统函数) date +%s 要进行命令替
换,也就是添加 $(date +%s)

例子:比如说我们用一个脚本,输入一个参数,并以该参数加入时间戳赋予一个变量,并将该变量输出显示:

#!/bin/bash
filename="$1_log_$(date +%s)"
echo $filename

其实我们可以把所有的系统命令当成是系统函数来调用

basename 函数
basename 的作用是获取文件名称,它会删除所有的前缀包括最后一个"/"字符,然后将字符串显示出来

语法如下:

basename [string/pathname][suffix] 

suffix为后缀,如果suffix被指定了,basename将会pathname或string中的suffix去掉,如下:

感觉这个函数其实就是获取文件名

现在我们回忆一下之前讲解的特殊变量 $n ,其中 $0 是获取当前名字,但是带有路径,我们只希望获取名字,所以可以通过 basename 去掉路径,甚至去掉后缀

看上图,就是可以成功获取到文件名字并且去除指定后缀

dirname函数
dirname 获取文件路径的绝对路径,从给定的包含绝对路径的文件名中去除文件名,然后返回剩余的路径

从上面这个图我们可以看得出这个函数注意就是将最后一个"/"及其后面的内容去掉,然后返回前面的内容

5.2 自定义函数

除了系统函数之外还有自定义函数,接下来我们看一下自定义函数如何实现

基本语法

function 函数名(){
// 函数体
return 返回值
}

温馨提示

必须在调用函数之前,先声明函数
函数返回值可以通过 $? 获取,但注意, $? 的值范围是0~255

例子:实现一个两个数值相加的函数

看上图,此时虽然实现了功能,但是如果此时用$?的话超于255的数就不正确了,因此我们可以用一个变量来存储返回值

#!/bin/bash
function add(){
    s=$[$1 + $2]
    echo $s
}
read -p "请输入第一个参数:" a
read -p "请输入第二个参数:" b
sum=$(add $a $b)
echo "a+b=" $sum

看上图我们可以知道,如果用return的话是无法获得返回值的,只能用echo。。。。

http://www.ritt.cn/news/21913.html

相关文章:

  • 珠海品牌网站建网站设计公司排名
  • 行业外贸网站建设企业微信营销管理软件
  • 公司做网站还是做app正规的教育培训机构有哪些
  • 网站规划包括哪些内容如何做seo搜索优化
  • 搞网站正规的培训机构有哪些
  • 做销售怎么找优质资源网站seo诊断网站
  • 商业网站建设规划书友链提交入口
  • 专业网站制作企业cpa推广接单平台
  • 太原住房与城乡建设厅网站网站建设情况
  • 大气蓝色企业网站模板百度推广多少钱
  • 摄影网站的实验设计方案seo搜索排名优化公司
  • 广州seo网站排名搜索引擎营销经典案例
  • 温州做外贸网站设计郑州做网站公司有哪些
  • 做网站赚什么钱网页设计素材
  • phpcms做视频网站首页网站seo收录工具
  • 代做网站和说明书广告公司网上接单平台
  • 自己模板做网站百度贴吧入口
  • 自己做的音乐网站侵权问题个人友情链接推广
  • ui设计网站开发西安网站制作费用
  • 嘉兴网站排名优化价格长沙弧度seo
  • 山东济南网站制作优化百度推广账号登录入口
  • 做啥类型网站发稿推广
  • 深圳市建设工程质量监督总站网站武汉大学人民医院精神科
  • 郫县网站建设太原seo招聘
  • 网站建设有前景吗seo是一种利用搜索引擎
  • 网站做等保备案网店代运营可靠吗
  • 大良购物网站建设简单的个人主页网站制作
  • 怎样做微信推广网站创建网站的流程
  • 影评网站怎么做五种关键词优化工具
  • 受欢迎的网站建设免费自己制作网站