30个Bash脚本示例

2024年 4月 26日 36.3k 0

Bash脚本可以用于各种目的,例如执行shell命令、一起运行多个命令、自定义管理任务、执行任务自动化等。因此,Bash编程基础知识对每个Linux用户都很重要。本文将帮助您了解bash编程的基本思想。这里用非常简单的例子解释了bash脚本的大多数常见操作。

本文介绍了bash编程的以下主题。

  1. Hello World
  2. 回声命令
  3. 评论
  4. 多行注释
  5. While循环
  6. For Loop
  7. 获取用户输入
  8. If语句
  9. And Condition if语句
  10. 或Condition if语句
  11. Else if and Else条件
  12. 案例状况
  13. 从命令行获取参数
  14. 从命令行获取带名称的参数
  15. 将两个字符串组合到一个变量中
  16. 获取字符串的子字符串
  17. 在一个变量中添加2个数字
  18. 创建函数
  19. 使用函数参数
  20. 从脚本传递返回值
  21. 生成目录
  22. 通过检查是否存在生成目录
  23. 读取文件
  24. 删除文件
  25. 附加到文件
  26. 测试文件是否存在
  27. 发送电子邮件示例
  28. 获取分析当前日期
  29. 等待命令
  30. 睡眠命令

创建并执行第一个BASH程序:

您可以从终端或通过执行任何bash文件来运行bash脚本。从终端运行以下命令,执行一个非常简单的bash语句。命令的输出将是“Hello World”。

$echo“Hello World”

打开任意编辑器以创建bash文件。这里,nano编辑器用于创建文件,文件名设置为“First.sh”

$nano-First.sh

将以下bash脚本添加到文件中并保存该文件。

#!/垃圾桶/垃圾桶

echo“Hello World”

您可以通过两种方式运行bash文件。一种方法是使用bash命令,另一种方法则是设置bash文件的执行权限并运行该文件。此处显示了两种方式。

$bash First.sh

$chmod a+x First.sh

$ ./第一.sh

转到顶部

回声命令的使用:

您可以将echo命令与各种选项一起使用。以下示例中提到了一些有用的选项。当您在没有任何选项的情况下使用“echo”命令时,默认情况下会添加一行换行符-n'选项用于打印没有换行的任何文本,'-e'选项用于从输出中删除反斜杠字符。创建一个名为“echo_example.sh”的新bash文件,并添加以下脚本。

#!/垃圾桶/垃圾桶

echo“使用换行符打印文本”

echo-n“打印不带换行符的文本”

echo-e“n删除t反斜杠t字符n”

使用bash命令运行该文件。

$bash echo_example.sh

转到顶部

评论的使用:

“#”符号用于在bash脚本中添加单行注释。创建一个名为“comment_example.sh”的新文件,并添加以下带有单行注释的脚本。

#!/垃圾桶/垃圾桶

#加两个数值

((总和=25+35))

#打印结果

echo$sum

使用bash命令运行该文件。

$bash comment_example.sh

转到顶部

多行注释的使用:

您可以通过各种方式在bash中使用多行注释。下面的示例显示了一种简单的方法。创建一个名为“multiline comment.sh”的新bash,并添加以下脚本。这里,“:”和“”符号用于在bash脚本中添加多行注释。以下脚本将计算5的平方。

#!/垃圾桶/垃圾桶

: '

以下脚本计算

数字的平方值,5。

'

((面积=5*5))

echo$区域

使用bash命令运行该文件。

$bash多重电子商务.sh

您可以查看下面的链接来了解更多关于bash注释使用的信息。

转到顶部

使用While循环:

创建一个名为“while_example.sh”的bash文件,了解while循环的用法。在本例中,while循环将迭代5次。计数变量的值将在每一步中递增1。当计数变量的值为5时,while循环将终止。

#!/垃圾桶/垃圾桶

valid=true

计数=1

而[$valid]



echo$count

如果[$count-eq 5];

然后

打破

fi

计数

完成

使用bash命令运行该文件。

$bash while_example.sh

您可以查看下面的链接来了解更多关于bash-while循环使用的信息。

转到顶部

使用For循环:

以下示例中显示了基本的for循环声明。创建一个名为“for_example.sh”的文件,并使用for循环添加以下脚本。这里,for循环将迭代10次,并在一行中打印变量counter的所有值。

#!/垃圾桶/垃圾桶

for((计数器=10;计数器>0;计数器--))



echo-n“$counter”

完成

printf“n”

使用bash命令运行该文件。

$bash for _example.sh

您可以在bash脚本中将for循环用于不同的目的和方式。您可以查看下面的链接来了解更多关于bash for循环的使用。

转到顶部

获取用户输入:

“read”命令用于接受bash中用户的输入。创建一个名为“user_input.sh”的文件,并添加以下脚本以获取用户的输入。这里,一个字符串值将取自用户,并通过组合其他字符串值来显示该值。

#!/垃圾桶/垃圾桶

echo“输入您的姓名”

读取名称

echo“欢迎$name使用LinuxHint”

使用bash命令运行该文件。

$bash user_input.sh

您可以查看下面的链接来了解有关bash用户输入使用的更多信息。

转到顶部

使用if语句:

可以将if条件与单个或多个条件一起使用。此语句的起始块和结束块由“if”和“fi”定义。使用以下脚本创建一个名为“simple_if.sh”的文件,以了解bash中的use if语句。这里,10被分配给变量n。如果$n的值小于10,则输出为“这是一个一位数”,否则输出为“它是一个两位数”。为了进行比较,此处使用了“-lt”。为了进行比较,您还可以在bash脚本中使用'-eq'表示相等,'-ne'表示不相等,'-gt'表示大于。

#!/垃圾桶/垃圾桶

n=10

如果[$n-lt 10];

然后

echo“这是一个一位数”

其他的

echo“这是一个两位数”

fi

使用bash命令运行该文件。

$bash simple_if.sh

转到顶部

将if语句与AND逻辑一起使用:

在具有两个或多个条件的if语句中可以使用不同类型的逻辑条件。下面的示例显示了如何使用AND逻辑在if语句中定义多个条件。“&&”用于应用if语句的AND逻辑。创建一个名为“if_with_AND.sh”的文件来检查以下代码。这里,用户名和密码变量的值将取自用户,并与“admin”和“secret”进行比较。如果两个值都匹配,那么输出将是“有效用户”,否则输出将为“无效用户”。

#!/垃圾桶/垃圾桶

echo“输入用户名”

读取用户名

echo“输入密码”

读取密码

if[[($username==“admin”&&$password==“secret”)]];然后

echo“有效用户”

其他的

echo“无效用户”

fi

使用bash命令运行该文件。

$bash if_with_AND.sh

转到顶部

将if语句与OR逻辑一起使用:

“||”用于定义if条件中的OR逻辑。使用以下代码创建一个名为“if_with_OR.sh”的文件,以检查if语句的OR逻辑的使用情况。这里,n的值将取自用户。如果该值等于15或45,则输出为“你赢了游戏”,否则输出为“输了游戏”。

#!/垃圾桶/垃圾桶

echo“输入任意数字”

读取n

如果[[($n-eq 15||$n-eq45)]]

然后

echo“你赢了比赛”

其他的

echo“你输掉了比赛”

fi

使用bash命令运行该文件。

$bash if_with_OR.sh

转到顶部

使用else-if语句:

else-if条件在bash中的使用与其他编程语言几乎没有什么不同elif'用于定义bash中的else-if条件。创建一个名为“elseif_example.sh”的文件,并添加以下脚本来检查bash脚本中如何定义elseif。

#!/垃圾桶/垃圾桶

echo“输入您的幸运数字”

读取n

如果[$n-eq 101];

然后

echo“你得了一等奖”

elif[$n-eq 510];

然后

echo“你得了二等奖”

elif[$n-eq 999];

然后

echo“你得了三等奖”

其他的

echo“对不起,下次再试”

fi

使用bash命令运行该文件。

$bash elseif_example.sh

转到顶部

用例说明:

Case语句用作if-elseif-else语句的替代语句。此语句的起始块和结束块由“case”和“esac”定义。创建一个名为“case_example.sh”的新文件,并添加以下脚本。以下脚本的输出将与前面的else-if示例相同。

#!/垃圾桶/垃圾桶

echo“输入您的幸运数字”

读取n

案例$n in

101)

echo-echo“你得了一等奖”;;

510)

echo“你得了二等奖”;;

999)

echo“你得了三等奖”;;

*)

echo“对不起,下次再试”;;

esac

使用bash命令运行该文件。

$bash case_example.sh

转到顶部

从命令行获取参数:

Bash脚本可以像其他编程语言一样从命令行参数中读取输入。例如,$1和$2变量用于读取第一个和第二个命令行参数。创建一个名为“command_line.sh”的文件,并添加以下脚本。以下脚本读取两个参数值,并将参数总数和参数值打印为输出。

#!/垃圾桶/垃圾桶

echo“参数总数:$#”

echo“第一个参数=$1”

echo“第二个参数=$2”

使用bash命令运行该文件。

$bash command_line.sh Linux提示

您可以查看以下链接以了解有关bash命令行参数使用的更多信息。

转到顶部

从命令行获取名称为的参数:

以下脚本显示了如何读取带有名称的命令行参数。创建一个名为“command_line_names.sh”的文件,并添加以下代码。这里,两个参数,X和Y被这个脚本读取,并打印X和Y的总和。

#!/垃圾桶/垃圾桶

用于“$@”中的arg



index=$(echo$arg|cut-f1-d=)

val=$(echo$arg|cut-f2-d=)

案例$index在

X) X=$val;;

Y) Y=$val;;

*)

esac

完成

((结果=x+y))

echo“X+Y=$result”

使用bash命令和两个命令行参数运行该文件。

$bash command_line_names X=45 Y=30

转到顶部

组合字符串变量:

您可以在bash中轻松地组合字符串变量。创建一个名为“string_comport.sh”的文件,并添加以下脚本来检查如何通过将变量放在一起或使用“+”运算符在bash中组合字符串变量。

#!/垃圾桶/垃圾桶

string1=“Linux”

string2=“提示”

echo“$string1$string2”

字符串3=$string1+$string2

string3+=“是一个很好的教程博客网站”

echo$string3

使用bash命令运行该文件。

$bash字符串_组合.sh

转到顶部

获取字符串的子字符串:

与其他编程语言一样,bash没有内置函数来从任何字符串数据中剪切值。但是,您可以在bash中以另一种方式执行子字符串任务,如下脚本所示。要测试脚本,请使用以下代码创建一个名为“substraing_example.sh”的文件。这里,值6表示子串将从其开始的起始点,5表示子串的长度。

#!/垃圾桶/垃圾桶

Str=“从LinuxHint学习Linux”

subStr=${Str:6:5}

echo$subStr

使用bash命令运行该文件。

$bash substraing_example.sh

转到顶部

加两个数字:

您可以用不同的方式在bash中进行算术运算。下面的脚本显示了如何使用双括号在bash中添加两个整数。使用以下代码创建一个名为“add_numbers.sh”的文件。将从用户处获取两个整数值,并打印相加结果。

#!/垃圾桶/垃圾桶

echo“输入第一个数字”

读取x

echo“输入第二个数字”

读取y

((总和=x+y))

echo“加法的结果=$sum”

使用bash命令运行该文件。

$bash add_numbers.sh

您可以查看下面的链接来了解更多关于bash算法的信息。

转到顶部

创建函数:

下面的脚本显示了如何创建一个简单的函数并调用该函数。创建一个名为“function_example.sh”的文件,并添加以下代码。您可以仅按名称调用任何函数,而无需在bash脚本中使用任何括号。

#!/垃圾桶/垃圾桶

函数F1()

{

echo“我喜欢bash编程”

}

一层楼

使用bash命令运行该文件。

$bash函数_example.sh

转到顶部

使用参数创建函数:

Bash不能在函数声明时声明一个或多个函数参数。但您可以通过使用其他变量来使用函数中的参数。如果在函数调用时传递了两个值,则使用$1和$2变量来读取这些值。创建一个名为“function|_parameter.sh”的文件,并添加以下代码。这里,函数“Rectangle_Area”将根据参数值计算矩形的面积。

#!/垃圾桶/垃圾桶

矩形面积(){

面积=$(($1*$2))

echo“面积为:$Area”

}

矩形_区域10 20

使用bash命令运行该文件。

$bash函数_parameter.sh

转到顶部

传递函数返回值:

Bash函数可以传递数值和字符串值。下面的示例显示了如何从函数中传递字符串值。创建一个名为“function_return.sh”的文件,并添加以下代码。函数greeting()将一个字符串值返回到变量val中,该变量稍后将与其他字符串组合打印。

#!/垃圾桶/垃圾桶

函数问候(){

str=“你好,$name”

echo$str

}

echo“输入您的姓名”

读取名称

val=$(问候语)

echo“函数的返回值为$val”

使用bash命令运行该文件。

$bash函数_return.sh

您可以查看以下链接以了解有关bash函数使用的更多信息。

转到顶部

生成目录:

Bash使用“mkdir”命令创建一个新目录。创建一个名为“make_directory.sh”的文件,并添加以下代码以获取用户的新目录名。如果当前位置不存在目录名,则它将创建目录,否则程序将显示错误。

#!/垃圾桶/垃圾桶

echo“输入目录名”

读取新目录

`mkdir$newdir`

使用bash命令运行该文件。

$bash make_directory.sh

转到顶部

通过检查是否存在生成目录:

如果您想在执行“mkdir”命令之前检查当前位置是否存在目录,则可以使用以下代码-d'选项用于测试特定目录是否存在。创建一个名为“directory_exist.sh”的文件,并添加以下代码以通过检查是否存在来创建目录。

#!/垃圾桶/垃圾桶

echo“输入目录名”

读取ndir

if[-d“$ndir”]

然后

echo“目录存在”

其他的

`mkdir$ndir`

echo“已创建目录”

fi

使用bash命令运行该文件。

$bash directory_exist.sh

您可以查看以下链接以了解有关bash目录创建的更多信息。

转到顶部

读取文件:

您可以使用循环在bash中逐行读取任何文件。创建一个名为“read_file.sh”的文件,并添加以下代码以读取名为“book.txt”的现有文件。

#!/垃圾桶/垃圾桶

file='book.txt'

同时读取行;做

echo$line

done>'运算符。创建一个名为“append_file.sh”的文件,并添加以下代码以在文件末尾添加新内容。在这里,“Learning Laravel 5”将在执行脚本后添加到“book.txt”文件的末尾。

#!/垃圾桶/垃圾桶

echo“附加文件之前”

cat book.txt

echo“Learning Laravel 5”>>book.txt

echo“附加文件后”

cat book.txt

使用bash命令运行该文件。

$bash append_file.sh

转到顶部

测试文件是否存在:

您可以使用“-e”或“-f”选项来检查bash中是否存在文件-f'选项在以下脚本中用于测试文件是否存在。创建一个名为“file_exist.sh”的文件,并添加以下代码。在这里,文件名将从命令行传递。

#!/垃圾桶/垃圾桶

filename=$1

if[-f“$filename”];然后

echo“文件存在”

其他的

echo“文件不存在”

fi

运行以下命令以检查文件是否存在。此处,book.txt文件存在,book2.txt不存在于当前位置。

ls

$bash file_exist.sh book.txt

$bash file_exist.sh book2.txt

转到顶部

发送电子邮件:

您可以使用“mail”或“sendmail”命令发送电子邮件。在使用这些命令之前,您必须安装所有必要的软件包。创建一个名为“mail_example.sh”的文件,并添加以下代码来发送电子邮件。

#!/垃圾桶/垃圾桶

收件人admin@example.com”

主题=“问候”

消息=“欢迎访问我们的网站”

`mail -s $Subject $Recipient

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论