linux 数字循环、目录循环的写法展示

给几个例子展示循环并传参的基本写法。要点:等号之间不要加空格,引用变量的值要用${},路径转义要用双引号引起来。
循环格式为
for
do
(一些内容)
done
数字循环
连续循环 (从1到100之类的)
1. 类似C语言写法
#!/bin/bash
for((ind=1;ind<=10;ind++));
do
value=$ind
./my_bash.sh $value
done
2. 类似MATLAB写法
#!/bin/bash
for ind in {1..10}
do
value=$ind
./my_bash.sh $value
done
非连续循环(枚举几个数字)
#!/bin/bash
indices=(1 3 4 5)
for ind in ${indices[@]};
do
value=$ind
./my_bash.sh $value
done
目录循环
这是一段脚本,作用是读取位于/home/yourfilepath/ 目录下的所有子目录,并且打开每个子目录中的txyz1.txt文件并读取里面的几个数传参给x,y,z,t四个变量。其中txyz1.txt是一行四个浮点数,由逗号隔开。
#!/bin/bash
dir_root=”/home/“
input_dir="${dir_root}/yourfilepath/"
for d in "${output_dir}/"*; do
echo "$d"
if [[ ! -d "$d" ]]; then
continue
fi
file="$d/txyz1.txt"
if [[ ! -f "$file" ]]; then
continue
fi
IFS="," read t x y z < "$file"
# 打印这四个浮点数
time=$((t * 10))
echo "x=$x"
echo "y=$y"
echo "z=$z"
echo "time=${time}"
done