zoukankan      html  css  js  c++  java
  • shell变量定义与数组-1

    1、查看系统所有shell和默认shell

    查看系统所有的shell:

    cat /etc/shells

    查看系统默认shell:

    echo  $SHELL

     2、第一个shell脚本,打印字符串Hello World

    新建文件1.sh,在1.sh中输入代码:

    1 #!/bin/sh 
    2 echo  "Hello  World"

    第一行#!告诉脚本要用什么解释器来执行,/bin/sh是解释器的路径。

    第二行echo命令表示向标准输出文件(一般是指显示器)输出文件,""包裹的表示字符串。

    3、执行shell脚本

    a、

    1 #进入脚本所在路径
    2 #给脚本赋予可执行权限
    3 chmod +x  1.sh
    4 #执行脚本
    5 ./1.sh

    b、

    #无需在脚本第一行指定解释器信息
    1
    /bin/sh 1.sh

    c、

    1 source  1.sh
    2 #source可以简写成.
    3 
    4 #source 1.sh等价于
    5 . 1.sh
    6 
    7 #执行当前目录下的1.sh
    8 . ./1.sh

    4、shell变量

    在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

    定义变量的三种方式:

    1 var_name=value1
    2 var_name3='value2'
    3 var_name3="value3"
    4 #=两边不能有空格

    shell变量命名规范:

    • 变量名由数字、字母、下划线组成;
    • 必须以字母或者下划线开头;
    • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

    定义变量举例:

    1 name="Stephen Wang"
    2 job="JAVA  Dev"
    3 company="ZTE"
    4 
    5 echo ${name}

    单引号和双引号的区别:

    使用单引号包裹变量时{}里面的内容会原样输出;双引号包含变量时会先解析变量。例子如下:

    1 #!/bin/sh 
    2 name="Vicent"
    3 info='My name is ${name}'
    4 echo ${info}#My name is ${name}
    5 info="My name is ${name}"
    6 echo ${info}#My name is Bob

    引用变量:

    1 #引用变量在变量名称前面加上$即可
    2 ${name}
    3 $name
    1 变量外面{}是可选的,作用是为了识别边界,应用举例
    2 name="Bob"
    3 echo  "My name is ${name}what is  your name?"

    建议引用变量时都加上{}

    修改变量值:

    1 name="Bob"
    2 echo "my name is ${name}"
    #修改name的值为Vicent
    3 name="Vicent" 4 echo "My name is ${name}"

    只读变量:

    1 name="Bob"
    2 echo "my name is ${name}"
    #定义name为只读变量
    3 readonly name 4 name="Vicent" 5 echo "My name is ${name}"

    删除变量:

    1 #删除变量name
    2 unset name

    将命令的运行结果赋值给变量:

    1 #var1=`command1`
    2 #var2=$(command1)
    3 
    4 var1=`pwd`
    5 echo ${var1}
    6 var2=$(date)
    7 echo ${var2}

     5、shell数组

    shell数组定义:

    1 array_name=(var1 var2  var3  var4)

    获取数组元素,下表从零开始:

    1 ${array_name[index]}
    #@或*表示所有元素

    赋值:

    1 array_name[index]=value

    获取数组的长度:

    1 ${#array_name[@]}
    2 
    3 ${#array_name[*]}

    删除数组元素:

    1 unset  array_name[index]

    数组常用语法实例:

     1 #!/bin/sh 
     2 arr1=(data1 data2 data3  data4)
     3 #赋值
     4 arr1[4]=data5
     5 #获取第5个元素,下表从0开始
     6 echo ${arr1[4]}  #输出data5
     7 #获取数组长度
     8 echo ${#arr1[@]} #输出5
     9 
    10 #删除第一个元素
    11 unset arr1[0]
    12 
    13 echo ${#arr1[@]} #输出4
  • 相关阅读:
    Python中的函数介绍
    Python中对文件和目录的操作
    Centos7上vsftp脚本--> sh vsftp.sh 用户名 密码 --> sh vsftp.sh install
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)
    re模块
    模块导入
    装饰器
    内置函数 Ⅱ
    内置函数 Ⅰ
    迭代器、生成器
  • 原文地址:https://www.cnblogs.com/webDepOfQWS/p/10624648.html
Copyright © 2011-2022 走看看