(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是非空字符串,则返回真​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值