Bash初学者介绍

241 阅读6分钟

Bash初学者介绍

Bash是 "Bourne-Again Shell "的首字母缩写。它是基于UNIX和Linux操作系统的一个默认命令行解释器。在基于UNIX和Linux的操作系统中,终端窗口由Shell和Bash组成。

Bash是这些系统的动力源,其中包括Linux发行版和MacOS等。学习Bash对于执行自动化是非常有用的。我是一个经常安装新操作系统的人,每次手动设置所有的配置和程序是非常痛苦的,但多亏了我创建的一些Bash命令,我可以完全自动完成这个程序。

使用bash,我可以安装软件,从网上下载配置,为我的桌面设置配置,以及更多。

Bash的功能超级强大,而且有很多特性。今天我将介绍一些命令和语句,它们将帮助你实现大量的自动化操作。


Bash shell脚本指南

对于bash shell脚本,我们需要使用shell和文本编辑器。shell脚本文件的扩展名是.sh。要创建一个新的脚本文件,需要创建一个文本文件,并以.sh文件扩展名保存。我使用Ubuntu 20.04来演示和创建Bash脚本文件。gedit是Ubuntu和许多基于Linux的操作系统的默认文本编辑器。

让我们创建一个新文件myscript.sh。

image.png

创建myscript.sh文件

要执行bash脚本文件,首先我们需要改变该文件的权限,使其可执行。权限是通过chmod +x命令改变的。为了使bash脚本文件可执行,你必须打开你的终端,导航到存放该文件的文件夹或目录,并执行以下命令。

chmod +x filename

现在我们来执行。

chmod +x myscript.sh command.

image.png

给予该文件执行权限

执行bash脚本文件。

bash脚本文件可以通过两种方式执行。

  1. bash文件名
  2. filename

要执行bash文件,请导航到保存bash文件的文件夹或目录。在第一种执行方式中,只需在终端上写上bash,然后写上文件名,然后点击回车。该bash脚本文件将被执行。

在第二种方式中,在终端上写"./filename",然后按回车键。在本教程中,我们将使用第二种方法来执行bash文件。

在这个bash脚本的基本指南中,我们将涵盖以下内容。

  1. Echo命令
  2. bash脚本文件中的注释
  3. ls命令
  4. 变量的声明和使用
  5. 条件性语句
  6. Bash中的循环

回声命令

echo命令是bash脚本中最基本的命令。它主要用于打印linux终端的文本或输出。无论你写什么,echo命令都会在终端上打印文本或数据。让我们打开myscript.sh文件,使用echo命令在终端上打印一些文本。

#!/bin/bash

echo "Hello everyone."
echo "We are executing the echo command"

输出。输出显示在终端上。

echo命令只是在终端上打印出文本。

image.png

Echo输出示例


bash脚本文件中的注释

注释是计算机程序的重要部分。它们是不可执行的行。注释只是增强了代码的可读性,并有助于理解我们代码或脚本的目的。在bash脚本文件中,我们可以添加单行注释和多行注释。单行注释以 "#"符号开始。多行注释以单引号(')开始,而:则用于添加注释行。让我们看看bash脚本中注释的例子。

#!/bin/bash

# using the echo command
# This is the single line comment
echo "Hello everyone. This is the example of single line comment"
: '
This is the multi line comments
lets print another echo command
'
echo "Bash is intresting"


ls命令

ls命令是你应该知道的非常基本的shell命令。ls命令列出文件系统中的文件和目录信息。通过不同的选项,ls命令可以被使用。让我们在我们的myscript.sh文件中写下ls命令并执行它。ls命令也可以直接在终端上执行。

#!/bin/bash

# using the ls command
ls

输出。

image.png

ls输出示例


变量的声明和使用

变量被声明用来存储数据或一些信息。变量是任何编程语言的重要方面。我们可以在变量中存储一些数值或信息,然后我们可以使用它。变量的声明和使用在bash中是非常简单的。变量是通过写变量名来简单声明的。在访问或使用变量名时,我们在变量上写上'$'符号。

让我们来声明变量并在我们的bash脚本文件中使用它们。

#!/bin/bash

#declaring a variable
VAR="Welcome to the bash scripting"
#using the variable
echo $VAR

#declaring the num1 variable
num1=10
#declaring the num2 variable
num2=20
#calculating the sum and storing it in num3 variable
num3=$(($num1+$num2))
#printing the sum
echo "The sum is:$num3"

输出

image.png

变量输出示例


条件性语句

Bash中的条件语句是用来做决策的。在条件语句中,一个特定的条件被评估。如果该条件为真,那么就执行某个代码块。否则,第二个代码块将被执行。

像其他编程语言一样,在Bash中,if 语句被用来评估一个条件。我们可以通过使用ORAND 操作符在if块中评估一个或多个条件。在Bash中,if块以if关键字开始,以fi关键字结束。如果某个条件是假的,那么就执行else块。

让我们来看看Bash中条件语句的执行。我们已经声明了一个变量。我们正在评估变量的值,并根据变量的值来做决定。-lt是用来进行小于比较的。对于比较,我们可以使用-gt表示大于,-eq表示相等。

#!/bin/bash

#declaring a variable
VAR=7
if [ $VAR -lt 10 ];
then
	echo "The number is less than 10"
else
	echo "The number is equal or greater than 10"
fi

输出 结果显示 "该数字小于10",因为变量的值是7,基本上小于10。在这个给定的例子中,if条件被执行。

image.png

条件输出示例

类似地,我们可以在if块中使用ORAND 条件来评估多个条件。双管号(||)用于指定OR逻辑,&&用于定义和运算逻辑。

让我们看看Bash中OR 逻辑的例子。

#!/bin/bash

#declaring a variable
VAR=7
#using OR operator in if condition
if [[ ( $VAR -gt 5 ) || ( $VAR -eq 7 ) ]]
then
	echo "The number is greater than 5 or equal to 7"
else
	echo "The number is not greater than 5 nor equal to 7"
fi

输出

image.png

有条件的OR输出示例

现在让我们在if条件中实现AND 操作符。在AND 操作符中,两个条件都应该是真的。

#!/bin/bash

#declaring a variable
VAR=7
#using OR operator in if condition
if [[ ( $VAR -gt 5 ) && ( $VAR -lt 10 ) ]]
then
	echo "Both the conditions satisfy"
else
	echo "Both the conditions do not satisfy"
fi

输出

image.png

有条件的AND输出示例

Bash中的else if语句

else if条件或语句是用来评估多个条件的。为了在Bash中定义else if条件,我们使用elif关键字。

让我们看看Bash中else if语句的一个例子。我们将从用户那里获得输入。

read关键字被用来从用户那里获取输入。

#!/bin/bash

echo "Enter a number"
read num
#declaring if condition
if [ $num -gt 10 ];
then
	echo "The number is greater than 10"
elif [ $num -eq 10 ];
then
	echo "The number is 10."
elif [ $num -lt 10 ];
then
	echo "The number is less than 10"

else
	echo "Invalid number"
fi

输出

image.png

带ELSE的条件输出示例

这就是Bash中条件语句的工作方式。


Bash中的循环

Bash中的循环是用来重复执行同一个代码块的。while循环和for循环是Bash中最常用的循环。

我们将在本节中看到while循环和for循环的例子.

Bash中的while循环

while循环是用来重复执行代码的。它对条件进行评估,并继续执行,直到测试条件为假。

Bash中的while循环的语法如下。

while [ test_condition ]
do
	statements or commands
done

如果测试条件为真,那么就执行do块。

让我们看一个while循环的例子。该循环继续执行,直到变量的值小于10。在do块中,我们在每次迭代中都将变量的值增加1。

#!/bin/bash

#declaring a variable
VAR=1
while [ $VAR -le 10 ]
do
       echo "The vale is: $VAR"
       #Incrementing the variable by 1
       (( VAR++ ))
done

输出

image.png

While循环的输出示例

当条件变成假的时候,循环就结束了。

Bash中的For循环

for循环也被用来执行一个任务或重复执行同一个代码块。for 循环的语法如下。

for (( i=i; i>10; i++))
do
done

这里的i是一个变量。

让我们看一个for循环的例子。在给定的例子中,我们正在增加变量的值并在每次迭代时打印它。

#!/bin/bash

#declaring the for loop
for (( i=0; i<10; i++ ))
do
  #printing the value of variable
  echo -n "$i "
done

echo "\n"

输出

image.png

For 循环的输出示例


总结

Bash是基于UNIX和Linux操作系统的默认解释器。Bash执行我们写在终端窗口的命令。这些命令可以写入并保存在bash(.sh)文件中,也可以从该文件中执行。

在以后的文章中,我们将更详细地探讨我们可以用来与终端互动的操作和命令。