软著申请时提取60页代码shell命令解析

       最近看到代码家关于学习的文章,其中一点深有感触:从搜索引擎得到的知识都是二手知识,带着局限性和作者的主观性,真正获得有效知识的方式是看书,官方文档和看代码。大家工作之余试试这种方式,闲话不表。

       这两天公司申请软件著作权,其中有个要求就是提取项目中3000行代码到word文档中, 作为codeMan 怎能干复制粘贴,这么低能的工作,当然是写程序实现了,什么?不会! 当然谷歌了,看有什么万能的谷歌大大有什么简便方法。

       果然一谷歌就有现成的shell代码,再次感谢 cptbtptpss 前辈技术支持,本着求真的精神,让我们看看这段代码。

#!/bin/bash 
//定义合并文件方法
list_alldir(){
// 1.递归文件目录
for file2 in `ls -A $1`
do
if [ -d "$1/$file2" ];then
#echo "$1/$file2"
list_alldir "$1/$file2"
elif [ -f  "$1/$file2" ];then
    //2.如果后缀是.js 或者.ejs,合并文件
	if [[ "$1/$file2" == *.js ]] || [[ "$1/$file2" == *.ejs ]] ;then
	echo "\n" >> out.txt
	echo "$1/$file2" >> out.txt
	echo "\n" >> out.txt
	cat "$1/$file2" >> out.txt
	fi
fi
    done
}
list_alldir ./fileDir

看到这个代码有几个问题一直盘旋在我头顶 

1.这是一段shell脚本,windows 环境 如何执行?

2.脚本的意思是什么?

3.为甚么能够 执行shell脚本,怎样执行一个脚本文件?

不要着急,我们一一探求:

     针对第1个问题:首先我在cmd 命令行中复制粘贴这段代码,执行报错,不能识别命令,突然看到上面的bash 字样,那就放到git  bash 命令行 中试试,果然在改了文件路径后可以执行,生成out.txt 目标文档,嘿嘿,瞎猫装上死耗子。

    第2问题 ,代码都是什么意思呢,简单了解shell 命令,总体就是将 ./fileDir目录下的 所有后缀为.js 或者.ejs 的文件都合并到out.txt 文件中。简单的在代码中注释了一下。

    第3个问题,git之所以可以在win下跑shell命令 是因为封装了Cygwin,cygwin模拟了linux环境,所还是相当于在linux 下跑shell 命令。直接在win中 跑shell脚本.sh文件的方式是:

配置git的环境变量之后,在任意文件进行创建一个为newfile.sh,文件名可以是随意的结尾需要为.sh,然后在sh的文件中输入shell命令,双击文件就能执行了; 第二种方式:cmd中进入git所在目录的bin文件夹下,输入sh  .\newfile.sh   就是sh 后面跟文件目录就可以执行了,感谢网上提供资料的代码侠们。

    由此例我们看到,工作中许多问题,我们可以用脚本代替重复规律的劳动,比如windows 自带脚本,比如iOS手机上的脚本,还有shell 脚本等,解放人力,从我做起。代码侠们,路漫漫,吾求索。

    

 

 

 

你可能感兴趣的:(技术,生活)