shell脚本概述

前言

本系列为循序渐进学运维系列的shell脚本实战部分,从零带你学脚本。

shell脚本的概念

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的
在这里插入图片描述
静态语言:编译型语言 如:c 、 c++ 、 java,
动态语言:解释型语言 如: php 、 shell 、 python 、 perl

shell脚本的结构

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。我们可以了解为把原来我们学的基础命令,放入到一个文件中,然后通过这个程序文件去执行时,就是shell脚本或者说shell程序。

我们来看一个小例子:

[root@ecs-c13b ~]# vim test1.sh
[root@ecs-c13b ~]# chmod 777 test1.sh 
[root@ecs-c13b ~]# sh test1.sh 
hello world!

[root@ecs-c13b ~]# cat test1.sh 
#!/bin/bash
#"this is frist shell "
echo "hello world!"
mkdir /tmp/test1.txt
echo "hello" > test1.txt

1.开头:#!/bin/sh或#!/bin/bash
符号#!用来告诉系统,这个脚本需要什么解释器来执行,即使用哪一种 Shell。

2.注释:
以#开头的行表示注释

3.命令行的书写规则:

  • 一行一条命令
  • 若一行多个命令,用分号(;)分割
  • 长命令可以使用反斜线字符(\)
  • 要有相应的空格和注释,便于阅读

4. 执行shell脚本的方式:

1)作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2)作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
练习
1. 打印如下文本:

No Name Mark
1 zahangsan 58.52
2 李四 90.85

此处可以使用prinf

[root@ecs-c13b ~]# sh printf.sh 
 No    Name        Mark
 1      zhangsan   50.52
 2      lisi       90.85
[root@ecs-c13b ~]# cat printf.sh 
#!/bin/bash
printf " %-5s %-10s  %-4s\n " No Name    Mark
printf " %-5s %-10s %-4.2f\n" 1  zhangsan 50.522
printf " %-5s %-10s %-4.2f\n" 2  lisi 90.85

问题解析:
格式替换符: %s %c %d %f

%-5s : 格式为左对齐且宽度为5的字符串
%-4.2f,指定包含2位小数。

\n 为换行符

面试题
  1. shell脚本的执行方法

答: 需要脚本有执行权限,如果没有需要使用命令chmod +x
然后使用sh 执行

  1. #!/bin/bash中 #! 表示什么
    #! 读作 shebang,也念做 hashbang用于指定脚本的解释器

互联网老辛:
互联网编程手艺人,架构师,一个技术极客,一个布道者;高中起就有一个做讲师的梦想,工作十余载,终于有幸成为云计算讲师,持续钻研云计算和信息安全领域,并继续把自己所学所感真心传授给自己的学员,帮助更多想要进入IT行业的小伙伴。传道授业解惑,深知责任重大,每日战战兢兢,如履薄冰。苦心钻研,一直前行,不敢有丝毫懈怠。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值