关于shell编程2

作者: 杭sing | 来源:发表于2017-05-07 00:29 被阅读63次

今天起来的时候想到一句话,程序员比不得其他行业,我们只有每天坚持不断地学习,复习旧的知识,Get新的工具 新的语言,我们才能不会被这个行业淘汰。今天还是继续讲讲shell编程的基本语法,之前说过shell是解释型语言,输出一个hello world 只要echo一下就可以,相比较于Java这些的还是轻松很多的。今天我们就一起结束这个shell编程。

-------------------------------------------------------------------------------------

第二部分:

-------------------------------------------------------------------------------------

算数运算

1、用expr

格式: expr m+n 或$((m+n))

e.g. 计算 (2+3)*4

s=`expr 2 + 3`

expr $s \* 4

这里用的是简单的分布运算,运算符之间一定要有空格,否则输出的就是一个字符串了。

expr `expr 2 + 3` \* 4

echo `expr \`expr 2 + 3\` \* 4`

这里是一不完成的计算,用法比较简单 但是容易出错,所以记不住的话就只能自己多测试几遍了

2、用(())

a=$((1+2))

echo $a

count=1

((count++))

echo $count

上面这两种都是用的(())

3、用$[]

a=$[1+2]

echo $a

-------------------------------------------------------------------------------------

流程控制

写程序就是靠流程控制,所以下面重点来了,我发现我写代码的时候命名不是很规范,大家就是不要学我了。嘿嘿,我们继续看以下的知识点

if  while  case  for  (都是这么几个套路,命令之间前往别忘记空格,不然出现的错误分分钟想让你自杀)

-------------------------------------------------------------------------------------

if语法

e.g.

vi hello.sh

#!/bin/bash

read -p "please input your name:" NAME

if[ $NAME = root ]

then

echo "hello ${NAME}, welcome!"

elif [ $NAME = other ]

then

echo "hello ${NAME}, welcome!"

else

echo "go out!"

fi

chmod +x hello.sh

这里留下一个小小的问题

#!/bin/bash

if [ a=b ]

then

echo ok

else

echo notok

fi

输出的会是什么?

所以说上面提还要示一定要注意的地方一定要注意,不然郁闷半天埋怨自己怎么选择了编程这个行业,甚至还要怀疑人生了。

if 里面还有一个类似于Java中三目运算符的式子

[ condition ] && echo ok || echo notok

condition判断组合  []  [[]] 后者里面是可以使用逻辑运算符的 当然也可以将逻辑运算符换成 -a -o 就可以在[]里面执行了。

if 里面的最后一点还剩常用判断运算符

条件判断

[ 'aa' = 'bb' ]

[ -n "aa" ]  不为0返回true

[ -z "" ]  为0 返回true

整数判断

-lt 小于

-le 小于等于

-eq 等于

-gt 大于

-ge 大于等于

-ne 不等于

文件判断

-d  是否为目录

-f 是否为文件

-e是否存在

-------------------------------------------------------------------------------------

while语法

1、while expression

do

command

...

done

2、i=1

while((i<3))

do

echo $i

let i++

done

case语法

case $1 in

start)

echo "starting"

;;

stop)

echo "stoping"

;;

*)

echo "Usage:{start|stop}"

esac

-----这是我用自己的方法测试的结果,大家这些可以自己写到脚本里运行一下

chx@ubuntu:~/briup$ vi case.sh

chx@ubuntu:~/briup$ chmod +x case.sh

chx@ubuntu:~/briup$ ./case.sh

input:start

starting

-------------------------------------------------------------------------------------

for语法

1、for N in 1 2 3

do

echo $N

done

for N in 1 2 3; do echo $N;done

for N in {1..3};do echo $N;done

2、

for ((i=0;i<=5;i++))

do

echo $i

done

-------------------------------------------------------------------------------------

函数的使用

#!/bin/bash

#func1.sh

hello()

{

echo "hello today is `date +%Y-%m-%d`"

#return 2

}

hello

函数调用的方式:

function hello()

function hello

hello

有一个应该不用说了函数调用要在函数的声明之后,在函数结束后面还可以添加return 返回一个状态码 可以通过 echo $? 获取到

函数参数

#!/bin/bash

#fun1.sh

function(){

echo "第一个参数$1"

echo "第一个参数$2"

echo "第一个参数$3"

echo "第一个参数$4"

echo "第一个参数$5"

echo "第一个参数$6"

echo "第一个参数$7"

echo "第一个参数$8"

echo "第一个参数$9"

echo "第一个参数$10"

echo "第一个参数${10}"

}

function 1 2 3 4 5 6 7 8 9 10000 11

这里涉及到一个小技巧  当参数大于等于的10的时候 就要用{}才能获取到参数

函数的返回值

#!/bin/bash

fun1(){

echo "这个函数会对两个输入的两个数字进行运算..."

echo "请输入第一个数字:"

read aNum

echo "请输入第二个数字"

read otherNum

echo "这两个数字分别是 $aNum 和 $otherNum "

return $(($aNum+$otherNum))

}

fun1

echo "输入的两个数字之和是: $? "

大家测试的时候试着输入一个更大的数值  你会有惊喜发现 因为返回的是8位 哈哈~

跨脚本调用函数

这里我先说明一下  fun1.sh 我的路径是在 /home/chx/briup

#!/bin/bash

#fun2.sh

. /home/fun1.sh # 或者是 source /home/fun1.sh

. /home/chx/briup/fun1.sh

fun1

到这里shell就结束了  有错误 或者需要交流的请关注我的微信公众号

hangsing宣传栏

相关文章

  • 关于shell编程2

    今天起来的时候想到一句话,程序员比不得其他行业,我们只有每天坚持不断地学习,复习旧的知识,Get新的工具 新的语言...

  • Shell编程基础知识

    关于shell编程基础: 1.为什么要学习shell编程? Linux系统中会大量的使用Shell,工作中我们也需...

  • shell 案例

    Shell编程一 Shell防范ARP攻击 Shell编程二 Shell防范DDos攻击 Shell编程三 ...

  • shell 第一天

    shell编程初识 1.1 shell编程初识 shell的定义 Shell 是命令解释器 Shell 也是...

  • shell基础在工作中的应用

    shell编程基础:1. shell变量:环境变量、特殊变量、用户自定义变量2. shell输入输出3 shell...

  • Linux操作系统

    一、shell编程 1.shell 定义:壳程序,人机交互界面 2.shell工具和命令 who -- 查看登录系...

  • 78.shell编程

    shell编程 Shell脚本,是一种为shell编写的脚本程序。 Shell编程跟JavaScript、Pyth...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

  • Shell编程、part1

    1.shell简介2. shell分类3. 查看shell4. 第一个shell脚本5. shell编程常用命令5...

  • Bash shell

    Shell脚本编程30分钟入门 1. $开头shell变量的含义: $1, $2, $3, ... are the...

网友评论

    本文标题:关于shell编程2

    本文链接:https://www.haomeiwen.com/subject/cvaytxtx.html