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


推荐阅读
  • 环境变量是用于描述系统运行环境的一系列变量,如PATH指定了命令的搜索路径,SHELL指定了默认的Shell。本文介绍了如何加载和管理这些环境变量,以及普通变量与环境变量的区别。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 16.04 系统上配置 Qt 5.5 的交叉编译环境,特别针对 i.MX6 平台进行了优化设置。内容涵盖从基本的软件安装到高级配置的全过程。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • 在Linux系统中,许多应用程序以源代码的形式提供,这给安装带来了挑战。本文旨在介绍一种简化源码软件安装流程的方法,帮助用户更加轻松地完成安装。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 通过设置Linux中的cd命令别名,用户能够更加高效地在复杂的目录结构中进行工作目录的切换。本文介绍了几种实用的方法,帮助减少重复输入路径的工作量。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 每种编程语言都有其独特的完成任务的方式,这也说明了为什么有这么多语言可供选择。在JimHall的《不同的编程语言如何完成相同的事情》文章中,他演示了13种不同的语言如何使用不同的语 ... [详细]
  • 1、什么是过滤器管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入, ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库
    【小白学习C++ 教程】二十三、如何安装和使用 C++ 标准库 ... [详细]
  • C#中调用OpenCTM打开.obj三维模型文件
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
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社区 版权所有