基于手机终端Termux(Ubuntu)实例1:使用shell脚本语言bash读取文件数据并计算数据的平均值。

一、程序实现步骤:

1.创建数据文件(以.txt后缀或无后缀的文件) 或 导入已有的数据文件;

2.创建shell脚本(.sh后缀的文件);

3.在shell脚本文件中使用while read 变量名 读取数据文件中的数据;

4.执行shell脚本文件;

5.使用tar压缩文件。

二、程序实现代码:

1.创建数据文件(以.txt后缀或无后缀的文件) 或 导入已有的数据文件

①创建数据文件(以.txt后缀或无后缀的文件)

         touch shuju.txt 或 vim shuju.txt 

        建议直接使用vim shuju.txt,可直接进入编辑界面输入数据。

注意:一行一个数,不可一行多个数,因为读取文件时默认读取一行中的数。

②导入已有数据文件

        点击手机qq中的文件 →→→ 选择用其他应用打开并选择Termux打开 → →→(修改名字后)点击EDIT → →→点击确定。

此时文件将会存在Termux终端的downloads文件夹中。

     打开Termux→→→ 输入 :cd ~/downloads 回车 →→→ 输入 ls →→→ 即可看到downloads下的所有文件,其中一定有你刚才导入的文件。

但只文件在downloads文件夹中时,在Ubuntu并不能cd /downloads,因此需要先在Termux把downloads中的数据文件复制到在Ubuntu可以cd到的文件夹中,建议复制到 /sdcard/pictures文件夹中(cp 文件名 /sdcard/pictures),然后再在Ubuntu把刚复制到/sdcard/pictures文件夹中的数据文件复制到/home/zxxr文件夹(cp 文件名 /home/zxxr )(zxxr为我已经创建的用户文件夹)。

③导入手机中的图片或截图(.jpg)

        首先要明确一点:Termux终端中可以访问手机内存中的文件。

先把手机中的照片放在手机存储中的Pictures文件夹中,因为Termux中的/sdcard/pictures文件夹对应Pictures文件夹。

接下来与导入已有数据文件的步骤相同。

补充:

查看图片的命令:(apt install termimage)

             termimage  截图文件名(带后缀)

注意:此时正在截图文件所在的文件夹。

例如: termimage  dog.jpg

2.创建shell脚本(.sh后缀的文件)

vim mean.sh

应注意shuju.txtmean.sh在同一个文件夹,并对mean.sh进行增加可执行权限(chmod 777 mean.sh)。

3.在shell脚本文件中使用while read 变量名 读取数据文件中的数据;

mean.sh程序如下:

sum=0        

count=0

mean=0

while read variable

do

      count= ` expr $count + 1 `

     echo "读取第$count个数,该数为$variable"

      sum=` expr $sum + $variable `

     echo "前$count个数的和为:$sum"

done   < shuju.txt

echo  -e " \n OK!!! \n\n  "

echo " 数据总数为$count "

echo " 数据之和为$sum "

echo $sum $count | awk ` {printf("数据平均值为%.5f\n\n",$1/$2) } `   #浮点数计算并以5位小数格式输出。(注释)

补充:

改善程序(增加函数调用,文件变量,输入和输出重定向):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iqx6JW-5L6d5Zyo5oOF6ZqP5bCU,size_20,color_FFFFFF,t_70,g_se,x_16

4.执行shell脚本文件

执行mean.sh的命令如下:

 sh mean.sh

          或

 ./mean.sh

5.压缩文件(常用命令)

①压缩文件或文件夹。

tar -czvf    压缩包的名(带.tar.gz后缀)     文件名或文件夹名   

例如:tar -czvf    test.tar.gz  mean.sh   将mean.sh文件压缩,得到名字为test.tar.gz的压缩包

             tar -czvf    test.tar.gz  mean       将mean文件夹压缩,得到名字为test.tar.gz的压缩包

             tar -czvf    test.tar.gz  mean.sh  shuju.txt   将mean.sh 和 shuju.txt 文件放在一起压缩,得到名字为test.tar.gz的压缩包,解压该压缩包后不会有目录,而是直接解压出mean.sh 和 shuju.txt 文件。

②解压缩

tar -xzvf    压缩包的名(带.tar.gz后缀)    

三、程序实现图:

1.两个文件在同一目录下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iqx6JW-5L6d5Zyo5oOF6ZqP5bCU,size_20,color_FFFFFF,t_70,g_se,x_16

 2.shuju.txt文件

数据可以很多,这里以两个为例:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iqx6JW-5L6d5Zyo5oOF6ZqP5bCU,size_20,color_FFFFFF,t_70,g_se,x_16

 3.mean.sh文件

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iqx6JW-5L6d5Zyo5oOF6ZqP5bCU,size_20,color_FFFFFF,t_70,g_se,x_16

 4.执行mean.sh

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Iqx6JW-5L6d5Zyo5oOF6ZqP5bCU,size_20,color_FFFFFF,t_70,g_se,x_16

猜你喜欢

转载自blog.csdn.net/weixin_49663860/article/details/123585076