【Linux】shell脚本概述
2021/4/14 7:31:01
本文主要是介绍【Linux】shell脚本概述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1. 打印如下文本:
- 前言
- shell脚本的概念
- 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.txtecho "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/bashprintf " %-5s %-10s %-4s\n " No Name Markprintf " %-5s %-10s %-4.2f\n" 1 zhangsan 50.522printf " %-5s %-10s %-4.2f\n" 2 lisi 90.85
问题解析:
格式替换符: %s %c %d %f
%-5s : 格式为左对齐且宽度为5的字符串
%-4.2f,指定包含2位小数。
\n 为换行符
面试题
- shell脚本的执行方法
答: 需要脚本有执行权限,如果没有需要使用命令chmod +x
然后使用sh 执行
- #!/bin/bash中 #! 表示什么
#! 读作 shebang,也念做 hashbang用于指定脚本的解释器
这篇关于【Linux】shell脚本概述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-30[译]漫画SELinux概念
- 2024-03-29linux 移动文件
- 2024-03-28linux .so file
- 2024-03-28Linux 磁盘管理
- 2024-03-28Linux学习笔记(十三)磁盘管理(一):磁盘分区
- 2024-03-26linux 创建 文件
- 2024-03-25使用SecureCRT对Linux vim进行颜色设置
- 2024-03-202019-2020-12 20199317 《Linux内核原理与分析》 第十二周作业
- 2024-03-20Linux运维的第二周总结
- 2024-03-13how to count number of directories in linux