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
- 超过10个参数写作
${10}