Loading

Shell脚本的数组、for循环以及函数声明

前言

对于一些设计操作系统的任务,第一想到Python调用os.system()函数调用shell命令。
简单的流程控制,决定直接编写shell脚本,顺便也能熟悉shell的语法。

数组

类似其他语言,shell也支持数组,不过仅限一维,对于矩阵等高维数组只能间接实现。

  • 声明方法1
    直接赋值,以空格分割
#!/bin/bash
array=(-1.0 C 2 up)
  • 声明方法2
    逐一赋值,下标始于0
#!/bin/bash
array[0]=-1.0
array[1]=C 
array[2]=2 
array[3]=up
  • 调用方法
#!/bin/bash
echo $array       #默认返回首元素:-1.0
echo ${array[3]}  #按index返回:up
echo ${array[*]}  #输出所有元素:-1.0 C 2 up
echo ${array[@]}  #同上
echo ${#array[*]} #获取长度:4

for循环

和其他语言一样,shell支持for循环进行遍历。
若列表是确定的,可直接写作:

#!/bin/bash
for n in -1 0 1
do
    echo $n
done

若列表来自变量,也可写作for n in ${array[@]}
除常见循环外shell还有until循环,和while相反,有点意思。

函数声明

对于反复调用的代码片段,函数可能是更好的选择。
shell声明函数时不指定参数的名称和数量,而使用类似脚本传入参数的方式$1 $2实现

#!/bin/bash
myFun(){
    touch $1
    mv ./a.out $2
}

注意:

  1. 参数始于$1
  2. 超过10个参数写作${10}
posted @ 2020-06-20 00:08  azureology  阅读(733)  评论(0编辑  收藏  举报