shell是一种命令解释器,最近在项目中遇到了一个问题,沿用原有的思路提供一个web接口然后上线,而转变思想用shell直接调service的接口便可解,感触到它相比来说比较轻量级的,在解决一些问题类似上面的问题时可采用shell。
在使用shell做处理时,也有些技巧。本次处理的问题设计到上千的条数据,写上千条shell能解决问题,但明显加大工作量,而且容易出错,此时Shell循环能比较好地解决这个问题。
首先,利用管道法cat $FILENAME | while read LINE逐行读取文件:
cat filename | while read line
do
echo $line
done
当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。例如,touch A.txt命令命令创建一个txt文件,vim + i编辑文件-->esc退出编辑-->:wq保存,然后读取该文件,如下:cat A.txt | while read line; do echo ${line}; done,可以看到输出A.txt文件信息。
读取到文件作为循环中某一变量的值,如下:cat A.txt | while read line; do curl --location --request POST "http://url" --header "Content-Type: application/json" --data "{\"updateId\": \"3\",\"uid\":\"${line}\"}";echo; done可取代上前条shell。
不讲究是发现的原动力,在学习和工作中避免自动完成,而是去可以思考练习。