zoukankan      html  css  js  c++  java
  • 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"! "
    ④获取字符串长度
    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() 定义,不带任何参数
    ②参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值
    ③调用函数时,直接写函数名,后面加上参数
    function helloWorld(){
    echo "第一个值为 $1" # 用
    echo "第二个值为 $2"
    echo "第十个值为 ${10}"
    echo "参数总共 $#个" #传递参数的个数$#
    echo "以一个字符串输出所有参数$*" #以一个单字符串显示所有向脚本传递的参数$*
    }
    helloWorld 1 2 3 4 5 6 7 8 9 10 11 12 13

    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"

    10.其他:

    匹配获取文件中数据
    resultString=$(cat $home/data/fruit.txt | grep "apple.number")

    用sed替换字符串
    resultString2=$(echo $resultString|sed 's#apple.number#apple.weight#g')

  • 相关阅读:
    jsp文件导包 糖不苦
    java 数字和日期处理 糖不苦
    java时间的一些处理 糖不苦
    Vimdiff 使用
    C++资源不完全索引
    sprintf 函数详细解释
    C++ 时间
    C++的可移植性和跨平台开发
    Solaris下开发64位程序的注意事项
    C/C++ 数学库函数
  • 原文地址:https://www.cnblogs.com/ShyPeanut/p/11995911.html
Copyright © 2011-2022 走看看