博客
关于我
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/

你可能感兴趣的文章
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
查看>>
NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
查看>>
NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
查看>>
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>