热门标签 | 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]


推荐阅读
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍了一种监控网络接口速率的Shell脚本,重点分析了其中出现的语法错误,并提供了详细的修正方法。该脚本旨在实时监测网络接口的上传和下载速度。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • 近期,考虑到在Vim内部进行GDB调试、运行Python脚本和数据库连接等多样化需求,思考是否可以通过集成终端来简化这些操作,而非逐一编写Vim脚本来实现。通过研究发现,确实存在一种高效的方法——利用特定插件实现终端功能的整合。 ... [详细]
  • 本文将探讨2015年RCTF竞赛中的一道PWN题目——shaxian,重点分析其利用Fastbin和堆溢出的技巧。通过详细解析代码流程和漏洞利用过程,帮助读者理解此类题目的破解方法。 ... [详细]
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社区 版权所有