shell学习

前端之家收集整理的这篇文章主要介绍了shell学习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、数组

1、数组遍历

  1. #!/bin/bash
  2. SUPPORTED_OPENSTACK_VERSION=('libtery' 'mitaka' 'ocata')
  3. for var in ${SUPPORTED_OPENSTACK_VERSION[@]}
  4. do
  5. echo $var
  6. done

运行结果

  1. root@vSOM:~# ./test.sh
  2. libtery
  3. mitaka
  4. ocata

2、判断元素是否在数组中

  1. #!/bin/bash
  2. OPENSTACK_VERSION=('libtery' 'mitaka' 'ocata')
  3. echo "please input openstack version:"
  4. read version
  5. if [[ "${OPENSTACK_VERSION[@]}" =~ ${version} ]]; then
  6. echo "$version in vesion array"
  7. else
  8. echo "$version not in version array"
  9. fi

运行结果

  1. root@vSOM:~# ./test.sh
  2. please input openstack version:
  3. mitaka
  4. mitaka in vesion array
  5. root@vSOM:~# ./test.sh
  6. please input openstack version:
  7. juno
  8. juno not in version array

3、数组实现菜单选择

  1. #!/bin/bash
  2. SUPPORTED_OPENSTACK_VERSION=('libtery' 'mitaka' 'ocata')
  3. echo "Please choose openstack version:"
  4. select var in ${SUPPORTED_OPENSTACK_VERSION[@]};do
  5. echo "selected version:$var"
  6. break
  7. done

运行结果

  1. root@vSOM:~# ./test.sh
  2. Please choose openstack version:
  3. 1) libtery
  4. 2) mitaka
  5. 3) ocata
  6. #? 2
  7. selected version:mitaka

4、字符转换成数组

  1. #!/bin/bash
  2. SUPPORTED_OPENSTACK_VERSION_STR='libtery mitaka ocata'
  3. SUPPORTED_OPENSTACK_VERSION_ARRAY=($SUPPORTED_OPENSTACK_VERSION_STR)
  4. for var in ${SUPPORTED_OPENSTACK_VERSION_ARRAY[@]}
  5. do
  6. echo $var
  7. done

运行结果

  1. root@vSOM:~# ./test.sh
  2. libtery
  3. mitaka
  4. ocata

如果字符串的分隔符不是空格,可以将IFS设置成相应的分隔符,再转成数组,如下所示:

  1. #!/bin/bash
  2. SUPPORTED_OPENSTACK_VERSION_STR='libtery;mitaka;ocata'
  3. IFS=";"
  4. SUPPORTED_OPENSTACK_VERSION_ARRAY=($SUPPORTED_OPENSTACK_VERSION_STR)
  5. for var in ${SUPPORTED_OPENSTACK_VERSION_ARRAY[@]}
  6. do
  7. echo $var
  8. done

运行结果同上

二、字典

1、字典的定义和使用

  1. declare -A NEUTRON_AGENT_SUPPORTED_VERSION
  2. NEUTRON_AGENT_SUPPORTED_VERSION=([libtery]='7.2.0' [mitaka]='8.3.0' [ocata]='10.0.1')
  3. echo "${NEUTRON_VERSION[mitaka]}"

运行结果

  1. root@vSOM:~# ./test.sh
  2. 8.3.0

三、字符串

1、分割字符串

  1. #!/bin/bash
  2. OPENSTACK_VERSION_STR='libtery;mitaka;ocata'
  3. echo $OPENSTACK_VERSION_STR | cut -d ';' -f1
  4. echo $OPENSTACK_VERSION_STR | cut -d ';' -f3

运行结果

  1. root@vSOM:~# ./test.sh
  2. libtery
  3. ocata

也可以用下面的方法

  1. #!/bin/bash
  2. OPENSTACK_VERSION_STR='libtery;mitaka;ocata'
  3. echo $OPENSTACK_VERSION_STR | awk -F ';' '{print $1}'
  4. echo $OPENSTACK_VERSION_STR | awk -F ';' '{print $3}'

运行结果同上

猜你在找的Bash相关文章