备注:本人使用cent-os 64位虚拟机,学习中主要阅读《鸟哥的私房菜》,自己对相关内容根据自己的理解进行重新整理。

Shell Script简介

    ​Shell Script:Shell脚本,使用文本文件,包含Shell语法和指令,包含一系列Linux指令,方便我们批量执行命令,更好的管理Linux主机。

    ​Shell指与Linux内核通信所使用的特定命令行用户界面,目前有多个不同的Shell,包括: C Shell,Korn Shell等。

    ​Shell Script的第一行制定了使用的Shell脚本:

  
  
  1. #!/bin/bash
学习Shell Script的计划

    ​Linux整个体系还是很复杂的,之前有学习一些基本的命令,并且在工作中也基本用到了。但是对Shell脚本还是没有系统的学习。作为开发人员,对自己不要求能够流畅的编写Shell脚本,但是希望自己能够看到Shell脚本,并且如果写的话可以能够很快地查资料上手学习。

    ​计划在7、8月份主要以学习Linux为主,中间可能根据个人爱好,会穿插学习Hadoop的一些东西。

    ​毕竟学无止境,自己还是差的很远。

HelloWorld

    ​先写一个基本的HelloWorld程序,通过一个HelloWorld,我们可以了解一些Shell脚本的基础语法。

    ​ 

  
  
  1. [jing@localhost ~]$ mkdir shell_code
  2. [jing@localhost ~]$ cd shell_code/

第一个Shell脚本:

  
  
  1. #!/bin/bash
  2. #This is my first Shell Script.
  3. #This is comments test.
  4. echo -e "Hello world!\a\n"
  5. exit 0

运行:

  
  
  1. [jing@localhost shell_code]$ sh sh01.sh
  2. Hello world!
我们查看我们的第一个Shell脚本,可以看到一个Shell脚本的基本内容:

-1,第一行

  1. #!/bin/bash

声明当前Shell脚本的shell名称。我们可以尝试去掉第一行的声明再次运行脚本。发现也可以正常运行脚本。可见这一行并不是必须的,但是为了防止某些系统无法正常运行,所以这一行脚本理论都会出现在每个Shell脚本中。

-2,注释:除了第一行的说明,其他以#开头的均未注释。

-3,执行的脚本具体内容。

-4,返回执行结果。通过exit 0可以返回给系统当前脚本执行结果,我们可以通过$?获取返回结果值。

  
  
  1. [jing@localhost shell_code]$ sh sh01.sh
  2. Hello world!
  3. [jing@localhost shell_code]$ echo $?
  4. 0

如下是一些简单额Shell例子,我们可以通过如下的例子,大体看到一个Shell脚本的构造。

例1,根据输入的名称,展示出全名给用户

  
  
  1. #!/bin/bash
  2. #Use input name ,show full name
  3. read -p "Please input your first name:" firstName
  4. read -p "Please input your last name:" lastName
  5. echo -e "\nYour full name is:$firstName $lastName"

具体基本使用:

  
  
  1. [jing@localhost shell_code]$ sh sh02.sh
  2. Please input your first name:A
  3. Please input your last name:B
  4. Your full name is:A B

例2:根据日期和输入文件名,创建文件的例子。

  
  
  1. #!/bin/bash
  2. #create files ,use input name and date
  3. echo -e "I'll use 'touch' command to create files"
  4. read -p "pleas input your filename:" fileName
  5. #check fileName
  6. fileName=${fileName:-"filename"}
  7. date1=$(date --date="2 days ago" +%Y%m%d)
  8. date2=$(date --date="1 days ago" +%Y%m%d)
  9. date3=$(date +%Y%m%d)
  10. file1=${fileName}${date1}
  11. file2=${fileName}${date2}
  12. file3=${fileName}${date3}
  13. #create file
  14. touch "$file1"
  15. touch "$file2"
  16. touch "$file3"

我们可以运行脚本测试。


以上即为一个基本的Linxu Shell脚本。后续我们会从基本语法来分析Shell 脚本,比如:参数定义,if逻辑判断,循环语句。


Logo

更多推荐