for
for循环有三种结构:一种是列表for循环,第二种是不带列表for循环。第三种是类C风格的for循环。
列表for循环
#!/bin/bash
for i in {1..5}
#for i in 1 2 3 4 5
do
echo ok
done
通过for循环显示当前目录下所有的文件
#!/bin/bash
for file in $( ls )
do
echo "file: $file"
done
计算1~100内所有的奇数之和
#!/bin/bash
sum=0
for i in {1..100..2}
#for i in $(seq 1 2 100),seq表示起始数为1,跳跃的步数为2,结束条件值为100
do
let "sum+=i"
done
echo "sum=$sum"
问题1: 这边的i为啥不用加$呢?
问题2:{1..100..2}是什么意思
--》按步数2不断递增?
shell从文本里按行读取数据,并赋值给多个变量
#!/bin/bash
for line in $(<1/1_43.txt)
do
m=$(echo $line | awk -F',' '{print $1}')
lon=$(echo $line | awk -F',' '{print $2}')
lat=$(echo $line | awk -F',' '{print $3}')
#echo $line
#echo $m,$lon
#echo $m,$lat
done
疑问:
$(<1/1_43.txt):
0