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

你可能感兴趣的文章
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
NIS认证管理域中的用户
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NiuShop开源商城系统 SQL注入漏洞复现
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 模型中的偏差和公平性检测
查看>>
Vue3.0 性能提升主要是通过哪几方面体现的?
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP三大特征抽取器:CNN、RNN与Transformer全面解析
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>
NLP度量指标BELU真的完美么?
查看>>
NLP的不同研究领域和最新发展的概述
查看>>
NLP的神经网络训练的新模式
查看>>
NLP采用Bert进行简单文本情感分类
查看>>