Shell语法学习(一)

1.Shell 既是一种命令语言,又是一种程序设计语言
2.Shell 脚本(shell script),是一种为 shell 编写的脚本程序
3.shell脚本第一行:  #!/bin/sh
4.shell变量:
    #注意: 变量名和等号之间不能有空格
    my_name="Peanut"
    #使用变量时,在变量名前加上$
    echo $my_name
    #只读变量
    readonly my_name
    #删除变量(不能删除只读变量)
    myAge=10
    unset myAge
    
5.shell字符串:
    ①字符串可以用单引号,也可以用双引号,也可以不用引号
    ②单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
    str1='HelloWorld'
    ③双引号里可以有变量;双引号里可以出现转义字符
    fruit_name='apple'
    str="I like \"$fruit_name\"! \n"
    ④获取字符串长度
    str2="orange"
    echo ${#str2}  # 4
    ⑤提取子字符串
    str2="orage"
    echo ${str2:1:3} # rag
    ⑥查找子字符串
    str3="runoob is a great site"
    echo `expr index "$string" io` # 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):4
    
6.shell数组:
    ①用括号来表示数组,数组元素用"空格"符号分割开
    arr1=(value0 value1 value2)
    ②读取数组:${数组名[下标]}
    arr1_value1=${arr1[1]}
    echo ${arr1[@]}  # 获取数组中的所有元素:@
    ③获取数组的长度:
    # 取得数组元素的个数
    length=${#array_name[@]}
    # 或者
    length=${#array_name[*]}
    # 取得数组单个元素的长度
    lengthn=${#array_name[n]}

7.shell注释:
    ①# 表示注释
    ②一段代码用{}括起来,定义成一个函数,不调用就达到注释的效果
    ③多行注释:
        :<<EOF
            注释内容...
            注释内容...
            注释内容...
        EOF

 

8.shell函数:
    ①可以带function fun() 定义,也可以直接fun() 定义,不带任何参数
    function helloWorld(){
        echo "第一个值为 $1" # 用
        echo "第二个值为 $2"
        echo "第十个值为 ${10}"
        echo "参数总共 $#个"   #传递参数的个数$#
        echo "以一个字符串输出所有参数$*"  #以一个单字符串显示所有向脚本传递的参数$*
    }
    helloWorld 1 2 3 4 5 6 7 8 9 10 11 12 13
     ②参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值
     ③调用函数时,直接写函数名,后面加上参数 
   function helloFruit(){
        fruit1="apple"
        fruit2="banana"
        string=$fruit1,$fruit2 #字符串直接拼接,不需要加号双引号
        echo $string  #函数最后一句为返回值,如果用return,只能返回数值
    }

   result=$(helloFruit)  #将函数返回值传给一个参数时,用$()
   echo $result
   result_array=(${result_identify//,/ }) #字符串按,分割成熟组
   fruit1=${result_array[0]}  #数组元素用 ${arr[i]}取值
   fruit2=${result_array[1]}
   
9.shell随机数:
  #伪随机数RANDOM
  random1=$RANDOM
  echo "$random1"
  #唯一识别码Universally Unique Identifier,获得唯一不重复的随机数
  psd="/proc/sys/kernel/random/uuid"
  vRandom1=$(cat $psd)
  echo "$vRandom1"
  vRandom2=${vRandom1//-/}  #去掉随机数中-
  echo "$vRandom2"

posted @ 2019-01-25 15:03  等木鱼的猫  阅读(234)  评论(0编辑  收藏  举报