Linux下shell脚本语言编程学习

Linux下shell编程学习

1.题外话

  • 自从第一次写完博客(关于蓝桥杯)之后,又一个星期过去了,本来计划是一周最起码写一篇博客来记下自己在一周之内的进步(学习),从而也方便自己以后回顾学习,但是最终自己还是被各种事情拖延,自己整体有时候就是不想学习,不想去弄这个,觉得排版、打字、找材料特别麻烦费时间,宁愿坐着也不愿意去弄,到了不能再拖得时候,就起身去弄这个了,有时候发现并不是整个事情特别麻烦,而是缺少去尝试的勇气,自己想象中觉得麻烦,就没有去弄,结果自己亲自去做的时候,发现也不是那么麻烦,反而做的时候很有感觉,觉得自己在进步,又讲了很多废话,总之,生活中还是要勇于尝试,这样自己才会一直进步
  • 对了,分享一个自己看到的一天的计划,包括学习和放松,觉得挺好;

    2.shell编程学习

  • echo
    • 类似于C语言中的printf一样,是输出打印的东西。
      zgq@123:~$ echo "you are a lovely girl!"
      you are a lovely girl!               ##直接在终端就输出.
    • 如果要输出变量的值,当然肯定也是可以的,对于于printf就可以知道。
      zgq@123:~$ echo &date "+%B%d%A"  ##date是变量,然后以月日星期的格式输出
      四月08星期一                      ##终端输出
    • 当然如果你想直接输出日期,也是可以的,以它默认的格式,唯一注意的就是输出变量的时候需要加 “&”这个符号
      zgq@123:~$ echo &date
      2019年 04月 08日 星期一 22:40:12 CST
    • 除此之后,也可以不加 "&"这个符号,直接用反引号直接括起来,也可以直接输出。
      zgq@123:~$ echo date
      2019年 04月 08日 星期一 22:40:19 CST
    • 这都是在终端直接输出指令,当然也可以建立shell指令文件,然后设置该文件权限,然后运行即可。
      #!/bin/sh
      echo "Mr.$USER,Today is:"
      echo date "+%B%d%A"
      echo "wish you a lucky day!"
      ## 然后设置文件权限,用到chmod指令,设置该文件 可读可写可操作,然后运行该shell文件,即可得到运行结果。
      zgq@123:~~/bin$ chmod 700 FirstShell
      zgq@123:~/bin$ ./FirstShell
      Mr.zgq,Today is:
      四月08星期一
      wish you a lucky day!
      • 关于chmod指令,可以在这里说一下,用法为 chmod [abc] 文件或目录
        a,b,c,分别代表user,group,other的权限,然后r=4,w=2,x=1,代表读,写,可执行的权限,0就是没有该权限。
        例如 chmod 666 FirstShell 设置该bash文件user,group,other的权限都为可读可写,但是不能操作。
    • if
      判断语句,主要是判断的方式不同,-r 表示为真,-d表示目录为真等。

      #! /bin/bash
      echo "Please enter the directory name of file name"
      read dd
      if [ -r $dd ]
      then
      ls $dd
      else
      echo "input error"
      fi
      zgq@123:~/bin$ chmod 700 shell212
      zgq@123:~/bin$ ./shell212
      Please enter the directory name of file name
      ZGQ    ##输入文件夹名称,并且可读
      Add.c  Add.o    hello.h  Makefile  print.h  test    test.o   ##列出文件夹下的名称
      Add.h  hello.c  hello.o  print.c   print.o  test.c
    • for
      与C语言的中for使用类似,下面的函数为计算1-1/2+1/3-1/4+1/5-.........-/+ 1/n,n由用户输入

      #! /bin/bash
      read n
      total=0.0000
      an=0.0000
      val=0
      begin=$(date +%s)       #记录开始时间
      for((num=1;num<=$n;num++));
      do
      i=$num        ##循环变量
      if [ $i != 0 ]
      then
      an=echo "scale=4;1.0000/$i" | bc        ##bc用来表示计算小数,scale表示计算保留的小数位数,
      val=expr $i % 2                         ##判断是否为偶数,分析上面题目可知,可知偶数为-,奇数为+
      if [ $val == 0 ]                          #若为偶数,则-,否则为+
      then
        total=echo "scale=4;$total-$an" | bc
      else
        total=echo "scale=4;$total+$an" | bc
      fi
      fi
      done
      end=$(date +%s)
      cost=$(($end - $begin))    #输出计算时间
      echo $total                #计算处结果
      echo "花费的时间是$cost s"
      zgq@123:~/bin$ ./shell218
      500
      .6909
      花费的时间是4 s
      如有雷同,纯属我抄你,有问题可以直接联系邮箱,在个人资料里面。

版权声明:
作者:ZhangYixi
链接:http://zyixi.xyz/linux%e4%b8%8bshell%e8%84%9a%e6%9c%ac%e8%af%ad%e8%a8%80%e7%bc%96%e7%a8%8b%e5%ad%a6%e4%b9%a0/
来源:一西站点
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录