• linux下shell程序(一)


    shell结构

    1.#!指定执行脚本的shell

    2.#注释行

    3.命令和控制结构

    创建shell程序的步骤

    第一步:创建一个包含命令和控制结构的文件。

    第二步:修改这个文件的权限使它可以执行。使用chmod u+x

    第三步:执行 ./example (也可以使用“sh example”执行)

     Shell变量

    变量:是shell传递数据的一种方法,用来代表每个取值的符号名。

    Shell有两类变量:临时变量永久变量

          临时变量是Shell程序内部定义的,其是用范围仅限于定义它的程序。对其它程序不可见。

    包括:用户自定义变量,位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。

    用户自定义变量

    用户自定义的变量由字母或下划先开头,由字母,数字或下划线序列组成,并且大小写字母意义不同。

    变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”

     

    如上如所示:chomd +x 4.2.sh 是对文件4.2.sh添加可执行权限。

    123   $a 是一个整数赋值

    1.23  $b 是一个小数赋值

    xyz    $c 是一个字符串赋值

             $d 赋值时出现空格,赋值有误。

    efgh  xyz    $用引号将一个含空格的字符串引起来再赋值。

    设置和使用变量

    设置变量:习惯上用大写字母来命令变量。变量名只能以字母表中的字符开头,不能用数字。

    变量赋值:赋值号“=” 两边应没有空格。

    定义时赋值,如NUM=1

    将一个命令得的执行结果赋给变量,如TIME=‘date’

    将一个变量赋给另一个变量,如:A=$B

    使用echo命令查看变量值。例如:echo $A

    列出所有的变量:#set

    包含多字的变量:$NAME=Mike Ron 运行时出错

    应改为:$NAME=“Mike Ron”  或 $NAME='Mike Ron'

    单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。

    删除变量:#unset NAME 

     位置变量和特殊变量

        Shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作

    为参数。由出现在命令行上的位置确定的参数称为位置参数。

    特殊变量:

        $* 这个程序的所有参数

        $# 这个程序的参数个数

        $$ 这个程序的PID

        $! 执行上一个后台命令的PID

        $? 执行上一个命令的返回值 如果值为:0 则执行成

    功,否则执行有问题

    Shell的运算符

    Shell中的运算符可以实现变量的赋值、算术运算、测试、比较等功能,运算符是构成表达式的基础。

    变量赋值

         Shell中使用“=”进行变量赋值,也可以用等号来改变或初值化一个变量的值。在进行赋值时是不考虑数据

    类型的,这是Shell中变量数据类型的特点决定的。

    算术运算符

         算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的算术运算符如下所示。

    +:对两个变量做加法

    -:对两个变量做减法

    *:对两个变量做乘法

    /:对两个变量做除法

    **:对两个变量做幂运算

    %:取模运算,第一个变量除以第二个变量求余数

    +=:加等于,在自身基础上加第二个变量。

    -=:减等于,在第一个变量的基础上减去第二个变量

    *=:乘等于,在第一个变量的基础上乘以第二个变量

    /=:除等于,在第一个变量的基础上除以第二个变量

    %=:取模赋值,在第一个变量对第二个变量取模运算,再赋值给第一个变量。

     

  • 相关阅读:
    C++_重载、重写和重定义的区别
    C++静态库与动态库
    C++ 中重载运算符 “<” 及 friend属性
    C++中,关于#include<***.h>和#include"***.h"的区别
    static_cast, dynamic_cast, const_cast讨论
    浅析C++中static关键字
    C语言包含头文件时用引号和尖括号的区别
    vc实现透明位图,透明背景
    VS2008调试技巧——断点失效
    Spring解决循环依赖的理解
  • 原文地址:https://www.cnblogs.com/zqjt2/p/5361151.html
Copyright © 2020-2023  润新知