热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux中shell脚本1

shell操作linux的桥梁创建:后缀为.sh的文件编写:头部注释为#!binsh或者#!binbash(注释可写可不写,建议写上)运行:1.通过sh命令执行例如:shhello

shell操作linux的桥梁

        创建:

                后缀为.sh的文件

        编写:

                头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上)

        运行:

                1.通过sh命令执行

                        例如:sh helloworld.sh

                2.通过bash命令执行

                        例如:bash helloworld.sh

                3.通过把文件修改为可执行的文件然后通过./文件命令.sh来执行

                        例如:./helloworld.sh(必须在当前目录下)

变量(动态数据类型,没有数据类型的限制,并且必须初始化)

        定义和初始化

                格式

                        变量名称=值

                例如:

                        x=10 "abc edefg"

                注意:

                        等号两边不能有空格

        使用:通过$区分变量还是一句话

                格式1:

                        $变量

                格式2:

                        ${变量}

                注意:

                        格式1,会把$后所有相连内容看做一个变量

                        格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分

$0...$n:表示接收外部参数(执行脚本时,传递的参数)

        格式:

                $下标

        注意:

                $0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)

                下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标

                *获取所有参数

                $#获取所有参数个数

引号:

        单引号:安原字符串输出

        双引号:可以引用变量,拥有特殊含义的内容

        拼接:连续获取变量

        注意:

                如果有多个引号,连续的形成一对

                引号中使用其他引号,其他引号做字符串使用

字符串

        获取长度

                格式:

                        ${#变量}

        截取:

                格式:

                        ${变量:开始位置:长度}

                注意:

                        ${str::5}:从0获取5个

                        ${str:0}:从0获取到末尾

        替换单个

                格式:

                        ${变量/旧/新}

                注意:从左向右替换第一个

        替换所有

                格式:

                        ${变量//旧/新}

                注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值

删除

        从头开始删除

                ${变量#表达式}:匹配第一个删除

                ${变量##表达式}:匹配最后一个删除

        从尾开始删除

                ${变量%表达式}:匹配第一个删除

                ${变量%%表达式}:匹配最后一个删除

        注意:从未开始删除,表达式还是从左向右去写

                删除不会再原字符上进行修改,想要修改原字符串只能从新赋值

运算符

        算术运算符

                bash不支持简单的数学运算,可以通过命令实现expr

                格式1:

`                        expr 值 + 值`

                        注意:符号两边需要加上空格

                格式2:

                        $[值+值]

        比较运算符: > <>&#61; <&#61;....

                格式:

                        $[值符号值](符号两边空格加不加无所谓)

                注意:比较的结果用1(true)和0(false)表示

        逻辑运算符: &/and |/or !/not

                例如:

                        #判断2>1结果

                        echo $[2 > 1]

                        #反转2>1结果

                        echo $[!$[2>1]]

                        #  反转后面的结果2>1 and 2>3  false0

                        echo $[!$[$[2>1]&$[2>3]]]

                        echo $[2>1 & 2<1]


推荐阅读
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
author-avatar
hwongth
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有