zoukankan      html  css  js  c++  java
  • (linux shell)第一章--小试牛刀(下)

    文章来源: (linux shell)第一章--小试牛刀(下)


    1.6 数组和关联数组

        1.6.1 预备知识

            Bash同一时候支持普通数组和关联数组。普通数组仅仅能使用整数作为数组索引,而关联数组能够使用字符串作为数组索引。关联数组在非常多操作中相当实用。

        1.6.2 实战演练

            定义数组的方法有非常多,能够在单行中使用一列值来定义一个数组:

            array_var=(1,2,3,4,5,6)   #这些值将会存储在以0为起始索引的连续位置上

            另外。还能够将数组定义成一组索引-值:

            array_var[0]="test1"

            array_var[1]="test2"


            打印出特定数组元素的内容:

            echo ${array_var[0]}

            以清单形式打印出数组中的全部值:

            echo ${array_var[*]}

            打印数组长度

            echo ${#array_var[*]}


    1.7 使用别名

        1.7.1 预备知识

            别名有多种便捷方式。能够使用函数,也能够使用alias命令

        1.7.2 实战演练

            alias new_command='command sequence'

            alias install='sudo apt-get install'

            当然。这样改动的别名仅仅是临时的,仅仅对当前终端有效。假设想一直保持作用,可将它放入~/.bashrc中


    1.8 获取终端信息

        1.8.1 预备仅仅是

            tput和stty是两款终端处理工具。

        1.8.2 实战演练

            获取终端的行数和列数

            tput cols

            tpu lines

            

            打印出当前终端名称:

            tput longname

            将光标移动到方位(100,100)处

            tput cup 100 100

            设置终端背景色

            tput setb no(0--7)

            设置文本样式为粗体:

            tput bold

            删除当前光标到行尾的全部内容:

            tput ed

            

            使用stty -echo 能够隐藏用户输入的内容


    1.9 获取设置日期和延时

        1.9.1 实战演练

            读取日期:  

            date

            打印纪元时

            date +%s

            选项--date用于提供日期串作为输入。

    但我们可以使用随意的日期格式化选项来打印输出。将日期串作为输入可以过用来获知给定的日期是星期几

            date --date 'Jan 20 2011' +%A

            

            能够依照你的选择打印出日期格式:

            date "+%d %B %Y"

                   

            时间的延时能够用sleep sec命令


    1.10  函数和參数

        1.10.1  实战演练

            定义函数:

            function fname() {

                statements;

            }       

            或者fname(){statments}

            仅仅须要使用某个函数名就能够调用函数:

            fname

            调用函数传递參数:

            fname arg1 arg2

            下面是函数读取參数的语法:

            fname() {

                echo $1,$2   #訪问參数1和參数2

                echo "$@"    #以列表的方式一次打印全部的參数,即"$1" "$2" "$3"

                echo "$*"      #类似于$@,可是參数被作为单个实体,即"$1c$2c$3",c是IFS的一个字符

            }


    1.11 比較与測试

        ​1.11.1 预备知识

        ​    ​我们能够用if,if else以及逻辑运算符来运行測试,而用一些比較运算符来比較数据项。另外一个test命令也能够用来測试。

        ​1.11.2 实战演练

        ​    ​if condition; then

        ​    ​    ​commands;

        ​    ​fi

        ​    ​算数比較

        ​    ​条件通常被放置在中括号内,一定要注意在[或]与操作数之间有一个空格。

    假设忘记了这个空格。脚本就会报错。比如:

        ​    ​[ $var -eq 0 ] or [ $var -eq 1 ]

        ​    ​其他一些重要的操作符有:

        ​    ​    ​-gt:  大于

        ​    ​    ​-lt:  小于

        ​    ​    ​-ge:  大于或等于

        ​    ​    ​-le:  小于或等于

        ​    ​能够依照以下的方法结合多个条件进行測试

        ​    ​[ $var -ne 0 -a $var2 -gt 2 ]   #逻辑与 -a

        ​    ​[ $var -ne 0 -o $var2 -lt 2 ]   #逻辑或  -o

        ​    ​

        ​    ​文件系统相关測试:

        ​    ​[ -f $file_var ]   #假设给定的变量包括正常的文件路径和文件名称。则返回真

        ​    ​[ -x $var ]   #假设给定的变量包括的文件可运行,则返回真

        ​    ​[ -d $var ]   #假设给定的变量包括的是文件夹。 则返回真

        ​    ​[ -e $var ]   #假设给定的变量包括的文件存在。则返回真

        ​    ​[ -w $var ]   #假设给定的变量包括的内容可写。则返回真

        ​    ​[ -d $var ]    #假设给定的变量包括的内容可读。则返回真

        ​    ​[ -l $var ]     #假设给定的变量包括的是一个符号链接,则返回真

        ​    ​


        ​    ​字符串比較:

        ​    ​    ​能够检查两个字符串是否相等以及不相等:

        ​    ​    ​[[ $str1 = $str2 ]]    [[ $str1 != $str2 ]]

        ​    ​    ​比較两个字符串之间的大小:

        ​    ​    ​[[ $str1 > $str2 ]]  或者 [[ $str1 < $str2 ]]

        ​    ​    ​[[ -z $str1 ]] 假设str1是空字符串,则返回真

        ​    ​    ​[[ -n $str1 ]] 假设str1是非空字符串。则返回真​

  • 相关阅读:
    HDU 4123 Bob’s Race 树的直径+ST表
    acm 2015北京网络赛 F Couple Trees 树链剖分+主席树
    acm java入门(转载)
    java水题集
    南昌网络赛C.Angry FFF Party
    eclipse 安装
    eclipse jdk安装
    树链剖分总结
    P
    L
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6885920.html
Copyright © 2011-2022 走看看