第一章 浅尝shell编程

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • 流程控制 if 单条件 双分支 多分支 case case支持glob风格的通配符: *: 任意长度任意字符?: ...
    毛利卷卷发阅读 744评论 0 1
  • 一、shell脚本介绍 1.1 开头(环境使用shebang机制) #!/bin/bash 必须写在文件首行 符号...
    优果馥斯阅读 3,282评论 0 1
  • 编程需求: 之前已经编写过一个性能监控脚本.现在将其再次进行功能的丰富,以达到企业生产环境的需求. 本文中涉及到需...
    大白菜的猪猪阅读 2,270评论 0 8
  • 1、终端 终端是交互式工具,用户可以通过终端与shell环境进行交互。shell命令都是在shell终端中输入并执...
    ruready阅读 460评论 0 1