zoukankan      html  css  js  c++  java
  • shell编程(一)

    转义和引用

    引入问题:之前我们知道了变量名前面加上$符号代表引用变量,但是如果我现在就需要打印出$符号该怎么办呢?想想我们在python中怎么做的,答案是转义。

    转义

    Shell中有两种字符
    一种是普通字符,没有其他的特殊含义,即普通纯文本(literal)
    另一种是元字符(meta),是shell的保留字符,在shell中有特殊的含义,比如:$
    为了使用元字符的本来含义,需要使用反斜线 来转义特殊字符 !!!

    引用

    Shell中的引用是指将字符串用某种符号包含起来,以防止特殊字符被解析为其他的意思。
    Shell中一共有4种引用符:单引号、双引号、反引号 和 转义符

    部分引用
    指用双引号印起来的内容。使用这种引用时,$、`(反引号)、(转义符) 这3个还是会解析成特殊的意义

    全引用
    指用单引号引起来的内容,单引号中的任何字符串都当作普通字符串。单引号当中不能包含单引号,转义也不行。

    命令替换

    Shell中可以将命令的标准输出作为值赋给某个变量,Shell中有两种方式可以完成命令替换,一种是反引号(`),一种是:$()

    反引号(`)

    反引号是常用的一种命令替换,有点在于使用方便
    direct=`pwd` #direct等于当前绝对路径

    $()

    $()和反引号是等价的,但是$()会让代码看上更加清晰,同时还支持嵌套,反引号是不支持嵌套的算术扩展是Shell提供的整数变量的运算机制,是Shell的内建命令之一算术扩展是Shell提供的整数变量的运算机制,是Shell的内建命令之一。

    运算

    算术运算

    Shell中只支持整数计算,所有产生小数的运算都会舍去小数部分。
    常见运算符
    常见的运算符包含:加(+)、减(-)、乘(*)、除(/)、取余(%) 和 幂(**),常见的算术运算大多需要结合Shell的内建命令 let 来使用。

    符合运算符
    常见符合运算符包含加等(+=)、减等(-=)、乘等(*=)、除等(/=)、余等(%=)

    其他算术运算

    $[]
    $[] 可以用于简单的运算

    算术扩展:$((…))
    算术扩展是Shell提供的整数变量的运算机制,是Shell的内建命令之一。

    高精度计算
    bc 是Linux下一款用来进行高精度计算的工具,甚至可以称它为一门语言
    直接输入:bc 进入它的交互模式
    默认情况下,bc不显示小数部分,可以通过scale来设置小数位数
    在shell脚本中可以通过管道符来使用 bc

    测试

    Shell中进行测试有两种方法
    第一种是使用 test 命令
    第二种是使用 [ 启动一个测试,以 ] 结束测试

    test

    test expression
    expression 是一个表达式,可以是算术比较、字符串比较、文本和文件属性等

    -e 是一个文件测试符,用来判断文件是否存在

    [ expression ]

    [ expression ] 是常用的测试方式
    注意:左边的括号 [ 后边有一个空格, 右括号 ] 前面也有一个空格,任意一个地方少一个空格都会报错
    在if、while、case等里面一般都会使用这种方式

    文件测试

    通过文件测试符,可以进行非常多的文件测试

    字符串测试

    Shell中字符串的比较主要有等于、不等于、大于、小于、是否为空

    整数比较

    整数测试是常用的简单算术运算

    逻辑测试

    逻辑测试主要有逻辑非(!)、逻辑与(-a 或 &&)、逻辑或(-o 或 ||)3种

    判断

    If 判断是常用的判断语句,有多种形式,可以根据不同的需求来选择形式
    语法规则

    需要注意:
    1. 判断式后面有分号(;) 和 then ,并且之间有空格
    2. 一个 if 判断最后一定要以 fi 结尾

    示例:

  • 相关阅读:
    第三个实验代码
    20165104孟凡斌-第五周作业
    20165104孟凡斌-第四周作业
    20165104孟凡斌-第二次java考试课下作业
    20165104孟凡斌-第三周作业
    20165104孟凡斌-第二次JAVA作业
    20165104孟凡斌-第一次Java考试课下作业
    2018-2019-1 《信息安全系统设计基础》 20165235 实验五 通信协议设计
    2018-2019-1 20165235 实验四 外设驱动程序设计
    20165235 实现pwd功能
  • 原文地址:https://www.cnblogs.com/woaixuexi9999/p/9439863.html
Copyright © 2011-2022 走看看