第一章 浅尝shell编程

2017-12-05  本文已影响0人  WangGP

By WangGaoPeng

2017.12.4日是我和我对象的谈恋爱两周年,作为一个IT从业人员,在这个普天同庆的日子里,我终于可以潜下心来学习了......

这是一篇技术文章,不是撒狗粮的文章,哈哈,话不多说进入今天的Shell编程的正题

作为一个从业三年的集成商的系统工程师,我觉得自己的发展需要有shell编程来支撑自己的技术体系

终于在今天晚上可以忍着痛苦来学习了一下shell编程

Shell之入门的哎口(ECHO)

在网上学习的知识标准的shell框架是酱紫的

#!/bin/bash

#auto print parameter \\简述作用

# by wgp 2017-12-4    \\作者,创作时间

在控制台打印输出My name is “名字” 如下:

echo "My name is WangGaoPeng"

在控制台打印输出名字

其实这是不太标准的书写方法,正规的应该是给name一个定义,在echo中引用此变量,如下:

name=WangGaoPeng

echo "My name is $name"  \\$name指的就是上面定义的name=WangGaoPeng

效果嘛和上图是一样的

在脚本中使用$引用PWD、UID,判断目录路径以及用户UID

echo $UID

echo $PWD

加上这两条然后再/bin/bash运行一下

如图:出现的/root就是当前所在目录为/root;0就是当前用户的UID为0,不信?不信你就新建一个abc用户,然后给这个脚本一个755权限,自己执行一下试试去。

使用PWD、UID判断目录路径和UID

ok,next one,现在说说我刚学的$0 和$1的用法

继续刚才的脚本,末尾添加

echo $0

echo $1

/bin/bash echo.sh运行如下:

我们看到$0位置显示的是文件名 对,$0的作用就是显示文件名字了,别的作用作为新手我还不清楚.......

然后$1位置没有任何东西,纳尼?那应该怎么整呢,从网上学习到,$1的作用就是显示参数的。 

$1使用方法 /bin/bash echo.sh test 如图 $1的用法

是不是很神奇,对$1位置显示的就是显示我们指定的参数test,如果想显示两个参数,那就定义

echo $1 $2即可

$0 $1的作用 $1的用法

继续学习

学习$? $#  $* 以下是我个人总结的,应该面会很窄,但是作为新手理解应该够用了-_-

$? 判断上一个命令是否执行成功

$# 判断有多少个参数

$* 总结有哪些参数

echo "This \$0 is $0"

echo "This \$1 is $1"

echo "This \$2 is $2"

echo "This \$* is $*"

echo "This \$? is $?"

echo "This \$# is $#"

添加完毕,go on,继续运行一下,如图 不带参数的 echo脚本

开头的目录名字 UID 什么的我就不说了,$0和$1的用法有人会对反斜杠(\)有疑问,这个反斜杠就是转意的意思,这个$0不做变量使用,就当普通的echo输出用。

这下就明白了$0的作用还是显示文件名字,但是$1和$2都是空白;

$*也是空白,因为没有参数啊,不明白看上面的 $*的解释

$? 因为脚本已经执行,无报错,自然就是0了,想看$0执行错误的看 $0执行错误 image

$# 也是空白,因为没有加参数啊,-_-!

接下来,我们在执行脚本的时候,后面加上 wgp jrx 如图 带参数的echo脚本

这下就一目了然了,参数有两个,所以$#是2,别的我就不解释了,自己对着看吧。

不带参数的 echo脚本 带参数的echo脚本 $0执行错误

哎口(ECHO)的Menu的骚操作

使用echo做一个假假的lamp的安装菜单,这个操作需要另起一个shell文件哦,别忘了标准框架

echo -e "\033[32m please select Menu follow:\033[1m"

echo "1)install apache service"

echo "2)install Mysql service"

echo "3)install Php service"

echo "################################"

效果如图 假假的Menu的脚本

看我们的字体都变成了原谅绿的颜色

这是因为echo -e的参数,这是一个标准的套路

echo -e "\033 [32m *********:\033[1m" \\这里可以写成1m或者32m,1m指的是以下所有的文字的颜色都编程绿色,32m指的是当前这一行变成绿色

假假的Menu的脚本

Shell 入门之if else

艹,先不写了,有点多,我们明天晚上再贱

上一篇下一篇

猜你喜欢

热点阅读