博客
关于我
linux--shell基础
阅读量:583 次
发布时间:2019-03-11

本文共 1732 字,大约阅读时间需要 5 分钟。

shell脚本

脚本语言简介

脚本语言相对于编译型语言而言,书写流程——编译——链接——运行的过程进行缩减。与编译型语言如C、C++、Java、C#相比,脚本语言的处理底层对象更为简单。脚本语言的运行通常是解释性语言,通过解释器将脚本程序读取并转换为内部形式进行执行。解释器本身通常也是一个编译型程序。

shell脚本

在Linux和Unix系统中,shell脚本是一种非常重要的脚本语言,在*nix领域应用广泛。通过shell脚本语言,可以以简洁的方式实现许多复杂的操作,这使得使用shell脚本成为处理文件和目录等事务的首选工具。

shell脚本优势

  • 语法和结构简单易学,适合快速上手
  • 学习和使用成本低,适合日常操作
  • 通常采用解释方式运行,无需编译
  • 程序开发效率优于运行效率,脚本语言的执行效率一般不如编译型语言

编写自己的第一个脚本

shell脚本的基本元素需要理解。shell脚本的 起始符 #! 或称为sha-bang符号,用于指定解释器路径。随后通常跟着的是解释器的位置。在shell脚本中,基本命令如sed和awk是常用的工具。命令格式通常包括命令名称、选项和参数。

脚本示例

以下是一个简单的Hello World示例:```bash#!/bin/bashecho "Hello World"exit 0```

执行脚本

  • 赋予权限后直接运行:`chmod u+x filename.sh`,然后运行`./filename.sh`
  • 通过bash或sh执行:`bash filename.sh` 或 `sh filename.sh`
  • 通过source或.命令运行:`source filename.sh` 或 `./ filename.sh`

练习

案例1:制作一个程序菜单

以下是一个简单的菜单脚本示例:```bash#!/bin/bashclearecho "*****************************************"echo "* \033[1;31m\t\tMenu\t\t\033[0m *"echo "*****************************************"echo "1.显示系统CPU信息和系统负载"echo "2.显示系统内存信息和交换空间"echo "3.显示文件系统挂载情况"echo "4.显示网络接口信息"echo "5.退出"

案例2:统计系统信息

以下是一个用于收集系统基本信息的脚本示例:```bash#!/bin/bashecho "……………………………………"echo "显示CPU信息:"echo $(cat /proc/cpuinfo | grep model name)echo "……………………………………"echo "系统负载!"echo $(uptime)echo "……………………………………"echo "显示交换空间:"echo $(free | grep wap)echo "……………………………………"echo "显示文件系统挂载情况:"echo $(df -hT | grep 'boot')echo "……………………………………"echo "显示网络接口信息:"echo $(ip addr show | grep inet)

案例3:环境变量管理

以下是一个用于管理环境变量的脚本示例:```bash#!/bin/bashecho "用户信息(用户ID):$USER"echo "用户ID(UID):$UID"echo "用户主目录(HOME):$HOME

案例4:数学计算示例

以下是一个简单的数学计算脚本示例:```bash#!/bin/bashvar1=10var2=3.14159265result=$(bc <<< "scale=10; $var1 * $var2")echo "计算结果:$result"

注意事项

  • 脚本必须以`#!/bin/bash`开头,并确保解释器路径正确
  • 代码缩进使用4个空格,保持一致性
  • 加上适当的注释以提高可读性
  • 命名要规范,变量名全大写,函数名全小写
  • 遇到复杂操作时,先在开发环境测试

转载地址:http://dpztz.baihongyu.com/

你可能感兴趣的文章
NC综合漏洞利用工具
查看>>
ndarray 比 recarray 访问快吗?
查看>>
ndk-cmake
查看>>
NdkBootPicker 使用与安装指南
查看>>
ndk特定版本下载
查看>>
NDK编译错误expected specifier-qualifier-list before...
查看>>
Neat Stuff to Do in List Controls Using Custom Draw
查看>>
Necurs僵尸网络攻击美国金融机构 利用Trickbot银行木马窃取账户信息和欺诈
查看>>
Needle in a haystack: efficient storage of billions of photos 【转】
查看>>
NeHe OpenGL教程 07 纹理过滤、应用光照
查看>>
NeHe OpenGL教程 第四十四课:3D光晕
查看>>
Neighbor2Neighbor 开源项目教程
查看>>
neo4j图形数据库Java应用
查看>>
Neo4j图数据库_web页面关闭登录实现免登陆访问_常用的cypher语句_删除_查询_创建关系图谱---Neo4j图数据库工作笔记0013
查看>>
Neo4j图数据库的介绍_图数据库结构_节点_关系_属性_数据---Neo4j图数据库工作笔记0001
查看>>
Neo4j图数据库的数据模型_包括节点_属性_数据_关系---Neo4j图数据库工作笔记0002
查看>>
Neo4j安装部署及使用
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(1):图数据库Neo4j介绍
查看>>