• shell基础学习


    1、

    #! /bin/bash

    #设置只读变量,只读变量不可修改
    myUrl="http://www.baidu.com"
    readonly myUrl

    #删除变量,unset不能删除只读变量
    myUrl1="http://www.sina.com"
    unset myUrl1

    #运行shell时会同时存在三种变量
    #局部变量,环境变量,shell变量

    #单引号:单引号中不能有变量,不能有单引号
    #双引号:双引号里可以有变量,可以出现转义字符。
    your_name="qinjx"
    str="Hello,I know your name is "$your_name" ! "

    #拼接字符串
    your_name="cye"
    greeting="Hello,"$your_name" !"
    greeting_1="Hello,$your_name"
    echo $greeting $greeting_1

    #获取字符串长度
    string="abcdefg"
    echo ${#string} #输出 7

    #提取子字符串,从第二个字符开始截取4个字符。
    string="runoob is a great site"
    echo ${string:1:4} #输出unoo

    #查找子字符串,查找i或者s的位置, 以下脚本中 "`" 是反引号,而不是单引号 "'",
    string="runoob is a great company"
    echo `expr index "$string" is` #输出8

    #数组,定义数组
    array_name=(value0,value1,value2,value3)

    #读取数组,${数组名[下标]}
    valuen=${array_name[n]}

    #使用@符号,可以获取数组中的所有元素
    echo ${array_name[@]}

    #获取数组的长度
    length=${#array_name[@]}
    #或者
    length=${#array_name[*]}
    #取得数组单个元素的长度
    lengthn=${#array_name[n]}

    #shell传递参数,在执行shell脚本向脚本传递参数时,脚本内获取参数的格式为:$n,n为一个数字,1代表执行脚本的第一个参数,2为执行脚本的第二个参数。
    echo "shell 传递参数实例"
    echo "执行的文件名:$0"
    echo "第一个参数为:$1"
    echo "第二个参数为:$2"
    echo "第三个参数为:$3"

    #调用时为
    #chmod +x test.sh
    #./test.sh 1 2 3
    #结果为:
    #shell 传递参数实例
    #执行的文件名:./test.sh
    #第一个参数为:1
    #第二个参数为:2
    #第三个参数为:3

    #输出输入重定向
    command > file 将输出重定向到 file。
    command < file 将输入重定向到 file。
    command >> file 将输出以追加的方式重定向到 file。
    n > file 将文件描述符为 n 的文件重定向到 file。
    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
    n >& m 将输出文件 m 和 n 合并。
    n <& m 将输入文件 m 和 n 合并。
    "<< tag" 将开始标记 tag 和结束标记 tag 之间的内容作为输

    0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
    /dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
    $ command > /dev/null 2>&1

    2、echo,-n参数可使下一个命令输出不换行

    echo -n "The date is: "

    date

  • 相关阅读:
    [RxSwift]3.3、数据绑定(订阅)
    [RxSwift]3.2、函数式编程 -> 函数响应式编程
    [RxSwift]2、Hello RxSwift!:我的第一个 RxSwift 应用程序
    [RxSwift]1、为什么要使用 RxSwift ?
    [RxSwift]RxSwift: ReactiveX for Swift
    [Swift]UIViewController
    104. 二叉树的最大深度
    103. 二叉树的锯齿形层次遍历
    102. 二叉树的层序遍历
    98. 验证二叉搜索树
  • 原文地址:https://www.cnblogs.com/cindy-cindy/p/6860339.html
Copyright © 2020-2023  润新知