简单而有效的Linux Shell脚本示例,


从历史上看,shell一直是类Unix系统的原生命令行解释器。多年来,它已被证明是Unix的主要功能之一,它本身已发展成为一个全新的话题。

Linux提供了具有强大功能的各种功能强大的Shell,包括Bash,Zsh,Tcsh和Ksh。这些Shell程序最令人惊奇的功能之一就是它们的可编程性。创建简单而有效的Linux Shell脚本来处理日常工作非常容易。此外,对这一主题的一点了解将使您立即成为Linux的高级用户。请和我们一起对Unix Shell脚本进行详细介绍。

Linux Shell脚本示例

在Linux上完成的大多数shell脚本都涉及bash shell。具有指定选择的高级用户经常使用其他Shell,例如Zsh和Ksh。由于示例的广泛使用和巨大的可用性,我们在示例中将大部分坚持使用Linux bash脚本。我们的编辑器还尝试概述一些处理bash以外的shell的shell脚本示例。您会发现不同的Shell脚本之间相当熟悉。

Linux Bash脚本

Bash又名Bourne Again Shell,是当今大多数Linux发行版中的默认命令行解释器。它是对早期Bourne Shell的升级,学习bash shell脚本将使您更快地了解其他shell脚本。因此,请自己尝试这些简单的示例以获得第一手经验。

1. Hello World

程序员经常通过学习hello world程序来学习新语言。这是一个简单的程序,可将字符串“ Hello World”打印到标准输出。使用vim或nano之类的编辑器创建文件linuxidc.sh并将以下几行复制到其中。

  1. #!/bin/bash 
  2. echo "Hello World,www.linuxboy.net" 

保存并退出文件。您需要使用以下命令使该文件可执行。

  1. $ chmod a + x linuxidc.sh 

您可以使用以下两个命令中的任何一个来运行它。

  1. $ bash linuxidc.sh 
  2. $ ./linuxidc.sh 

它将打印出传递给脚本内部echo的字符串。

2. 使用echo进行打印

echo命令用于以bash格式打印信息。它类似于C函数'printf',并提供许多常用选项,包括转义序列和重定向。

将以下几行复制到一个名为linuxboy.net.sh的文件中,并使其可执行,如上所述。

  1. #!/bin/bash 
  2. echo "Linux公社www.linuxboy.net" 
  3. echo -n "不使用换行符打印文本" 
  4. echo -e "\nUbuntu \t CentOS \t debian\n" 

运行脚本,看看它做了什么。-e选项用于告诉echo传递给它的字符串包含特殊字符,需要扩展功能。

3. 使用注释

注释对于文档很有用,并且是高质量代码库的要求。在处理关键逻辑的代码中放入注释是一种常见的做法。要注释掉一行,只需在它前面使用#(散列)字符。检查以下bash脚本示例。

  1. #!/bin/bash 
  2.  
  3. # 两个值相加 
  4. ((sum=17+19)) 
  5.  
  6. #打印结果 
  7. echo $sum 

该脚本将输出数字36。请在某些行之前使用#检查如何使用注释。但是第一行是一个例外。它被称为shebang,让系统知道运行此脚本时使用哪个解释器。

4. 多行注释

许多人使用多行注释来记录其Shell脚本。在下一个名为linuxboy.net.sh的脚本中检查如何完成此操作。

  1. #!/bin/bash 
  2. : ' 
  3. 该脚本计算 
  4. 5的平方。 
  5. ((area=5*5)) 
  6. echo $area 

注意多行注释是如何放置在:' and '字符中的。

5. While循环

while循环结构用于多次运行某些指令。请查看以下名为while.sh的脚本,以更好地理解此概念。

  1. #!/bin/bash 
  2. i=0 
  3.  
  4. while [ $i -le 2 ] 
  5. do 
  6. echo Number: $i 
  7. ((i++)) 
  8. done 

因此,while循环采用下面的形式。

  1. while [ condition ] 
  2. do 
  3. commands 1 
  4. commands n 
  5. done 

方括号是必需的。

6. For循环

for循环是另一种广泛使用的bash shell构造,它允许用户有效地遍历代码。下面演示一个简单的示例。

  1. #!/bin/bash 
  2.  
  3. for (( a=1; a<=5; a++ )) 
  4. do 
  5. echo -n "$a " 
  6. done 
  7.  
  8. printf "\n" 

将此代码保存在名为inuxidc.com.sh的文件中,然后使用./linuxboy.net.sh运行它。不要忘记使其可执行。该程序应打印出数字1到15。

7、接收用户的输入

获取用户输入对于在脚本中实现用户交互至关重要。下面的Shell脚本示例将演示如何在Shell程序中接收用户输入。

  1. #!/bin/bash 
  2.  
  3. echo -n "输入内容:" 
  4. read something 
  5.  
  6. echo "您输入了:$something" 

因此,read结构后跟一个变量名,用于获取用户输入。输入存储在这个变量中,可以使用$符号访问它。

8. If语句

如果语句是Unix shell脚本中最常见的条件构造,则它们采用以下形式。

  1. if CONDITION  
  2. then 
  3. STATEMENTS 
  4. fi 

仅当条件为true时才执行语句。fi关键字用于标记if语句的结尾。下面是一个简单的示例。

  1. #!/bin/bash 
  2.  
  3. echo -n "请输入数字: " 
  4. read num 
  5.  
  6. if [[ $num -gt 17 ]] 
  7. then 
  8. echo "数字大于17." 
  9. fi 

仅当通过输入提供的数字大于17时,以上程序才会显示输出。该-gt表示大于; 类似地-lt小于;-le小于等于;和-Ge为大于等于。[[]]是必需的。

9. 使用If Else进行更多控制

将else构造与if结合使用,可以更好地控制脚本的逻辑。一个简单的例子如下所示。

  1. #!/bin/bash 
  2.  
  3. read n 
  4. if [ $n -lt 10 ]; 
  5. then 
  6. echo "这是一个数字" 
  7. else 
  8. echo "这是一个两位数的数字" 
  9. fi 

else部分需要放在if的操作部分和fi之间。

相关内容