Linux shell脚本攻略(2)

1.数组与关联数组

数组使用整数作为索引,关联数组使用字符串作为数组索引。

1.数组的定义:

arr=(1 2 3) 或者:arr[0]=1;arr[1]=2;arr[2]=3

获取元素  echo ${arr[0]}

获取全部 echo ${arr[*]} 或者  echo ${arr[@]}

2.关联数组(Bash 4.0后被引入),可以用任意文本作为数组的索引。

首先需要将一个变量定义为关联数组:declare -A arr

1) 赋值方式有两种:

第一种:采用 “索引-值”的方式

arr=([peter]=29 [gordon]=28)

第二种:单独赋值

arr[peter]=29

arr[gordon]=28

echo "peter's age is ${arr[peter]}"

2)列出数组的索引

echo ${arr[*]} 或者 ${arr[@]}  #  打印出来 peter gordon

打印value :echo ${!arr[*]}  # 29 28

2.别名

1)创建别名:

alias install='sudo apt-get install'

创建别名时,如果已经有同名的别名存在,那么原有的别名设置将被新的 设置取代。

2)alias命令咱叔的 关闭终端后就失效了,如果想一直可用就将其定义放入~/.bashrc中。

比如 echo 'alias a=cat' >> ~/.bashrc

3)删除别名

unalias a

4) 可以创建一个别名rm 删除的时候备份下例如:alias rm='cp $@  ~/backup && rm $@'

例举所有的别名:alias

3.采集终端信息

1)例子:输入密码

#!/bin/bash

echo -e "Enter password"

stty -echo

read pwd

stty echo

echo "pwd is $pwd"

2)例子:操作光标

#!/bin/bash

ttput sc #存储光标位置

for count in {1..20}

do

        tput rc  #回复之前的存储位置

        tput ed  #清除光标到这行结束位置所有内容

        echo -n $count

        sleep 1

done

4.字段分隔符

内部分隔符(Internal Field Separator,IFS) 用于分割字符串的

#!/bin/bash

data="peter,gordon,hello,james,tom"

oldIFS=$IFS

IFS=,    #分隔符为  ,

echo oldIFS is $oldIFS

for item in $data

        do

        echo item is: $item

done

其他:

生成序列方式:

{1..10}

`seq 1 10`

未完待续。。。。。

你可能感兴趣的:(Linux shell脚本攻略(2))