shell(1):基础,创建5000个文件夹

来源:互联网 发布:数据发掘入门书籍 编辑:程序博客网 时间:2024/05/20 11:52

日期:2017/10/7

不知不觉,国庆黄金周已经过去7/8了,今天写了一个shell脚本,一边是温习shell的基础语法,也好在之后的工作中掌握一门技能;

上代码:

#!/bin/bash#!This is a shell script to finish the folders tasks.rm -rf /home/gec/mmb/1mkdir /home/gec/mmb/1cd /home/gec/mmb/1echo 'The current path is :';pwdecho '********'for i in 1 2 3 4 5 6 7 8 9 10do    #ls    echo '++'    let result=i%2    if [ $result -eq 0 ]    then       mkdir $i       #echo "mkdir $i finished"       cd $i       #echo "cd $i finished"       a=1000       while [ $a -gt 0 ]       do           echo '--'           #echo $a           mkdir $a           let a--           #a = $a-1       done       echo '1000 filefolders created successfully'       cd .. #exit       #echo "exit $i finished"    else       mkdir $i       #echo "mkdir finished"    fidonecd ..ls -lR|grep "^d"|wc -l

嗯,是的,把上面的代码撸一遍,对于基础的要点便掌握了;

上面涉及的基础指令有:

1.  rm -rf :rm 是删除文件的指令,那为啥我使用它去删除文件夹呢??

                        那是因为rmdir指令只能删除空目录,所以在上面我加入了 参数 rf,强制性向下进入目录,删除其中的文件,然后再删除目录本身;

2.  mkdir:新建文件夹,若是加入的目录参数不存在,则新建路径的文件夹;

3.  cd:进入文件夹,后跟绝对/相对路径;相反,cd .. 是返回上一级文件目录;

4.  echo:输出字符串/数值;

5.  for循环:务必注意它跟其他高级语言(C/Java/Python)的结构化区别,do....done 包含了循环体,可以参考博文:http://www.linuxidc.com/Linux/2012-02/53030.htm;

6.  let:执行数学运算,可以参考博文:http://blog.csdn.net/changerjjlee/article/details/52161191;

7.  if:比较差异,if....then....else....,可以参考博文:http://blog.csdn.net/crazyhacking/article/details/10182563;

8.  while:另一种循环,do....done 包含了循环体,可以参考博文:http://www.cnblogs.com/kangyoung/p/3556186.html;


最后再详细讲解几个:

1.  最后的:ls -lR|grep "^d"|wc -l ,是对目录数量进行的一个计数:



2.  对于虚拟机来说,默认的shell可能不是bash,而是dash,因此会碰上let:not found command的报错,可以切换默认为bash执行,或者bash + xxx.sh;

切换默认的shell,可以参考博文:http://blog.csdn.net/hemmingway/article/details/49301873;



END.

原创粉丝点击