40个简单但有效的Linux Shell脚本示例

您所在的位置:网站首页 shell脚本引用文件 40个简单但有效的Linux Shell脚本示例

40个简单但有效的Linux Shell脚本示例

2023-03-24 11:52| 来源: 网络整理| 查看: 265

本篇文章学习目标:Linux shell脚本

历史上,shell一直是类Unix系统的本地命令行解释器。它已被证明是Unix的主要功能之一,并发展成为一个全新的主题。Linux提供了各种功能强大的shell,包括Bash、Zsh、Tcsh和Ksh。这些外壳最令人惊讶的特性之一是其可编程性。创建简单而有效的Linux shell脚本来处理日常工作非常容易。

1. Hello World

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

#!/bin/bash echo "Hello World"

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

$ chmod a+x hello-world.sh

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

$ bash hello-world.sh $ ./hello-world.sh

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

2.使用echo打印

echo命令用于在bash中打印信息。它类似于C函数“printf”,并提供了许多常见选项,包括转义序列和重定向。将以下行复制到名为echo.sh的文件中,并使其可执行,如上所述。

#!/bin/bash echo "Printing text" echo -n "Printing text without newline" echo -e "\nRemoving \t special \t characters\n"

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

3.使用注释

注释对文档很有用,是高质量代码库的要求。将注释放在处理关键逻辑的代码中是一种常见的做法。要注释掉一行,只需在其前面使用#(hash)字符。例如,请查看下面的bash脚本示例。

#!/bin/bash # Adding two values ((sum=25+35)) #Print the result echo $sum

此脚本将输出数字60。首先,在某些行之前使用#检查注释的使用方式。不过,第一行是一个例外。它被称为shebang,让系统知道在运行这个脚本时要使用哪个解释器。

4.多行注释

许多人使用多行注释来记录他们的shell脚本。在下一个名为comment.sh的脚本中检查这是如何完成的。

#!/bin/bash : ' This script calculates the square of 5. ' ((area=5*5)) echo $area

注意多行注释是如何放置在内部的:“和”字符。

5.While循环

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

#!/bin/bash i=0 while [ $i -le 2 ] do echo Number: $i ((i++)) done

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

while [ condition ] do commands 1 commands n done

方括号周围的空格是必填的。

6.For循环

for循环是另一种广泛使用的bashshell构造,它允许用户高效地迭代代码。下面演示了一个简单的示例。

#!/bin/bash for (( counter=1; counter> editors.txt echo "After appending the file" cat editors.txt

现在您应该注意到,我们直接从Linux bash脚本使用日常终端命令。

28.测试文件存在

下一个shell脚本示例显示如何检查bash程序中文件的存在。

#!/bin/bash filename=$1 if [ -f "$filename" ]; then echo "File exists" else echo "File does not exist" fi

我们直接从命令行传递文件名作为参数。

29.从Shell脚本发送邮件

从bash脚本发送电子邮件非常简单。下面的简单示例将演示一种从bash应用程序执行此操作的方法。

#!/bin/bash recipient=”[email protected]” subject=”Greetings” message=”Welcome to UbuntuPit” `mail -s $subject $recipient wtmp echo "Logs cleaned up."

请记住以root身份运行此Linuxshell脚本。

37.使用Bash备份脚本

Shell脚本提供了一种强大的方法来备份文件和目录。以下示例将备份过去24小时内修改的每个文件或目录。该程序使用find命令执行此操作。

#!/bin/bash BACKUPFILE=backup-$(date +%m-%d-%Y) archive=${1:-$BACKUPFILE} find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar" echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"." exit 0

备份过程成功后,它将打印文件和目录的名称。

38.检查你是否是root用户

下面的示例演示了通过Linux bash脚本快速确定用户是否为root用户的方法。

#!/bin/bash ROOT_UID=0 if [ "$UID" -eq "$ROOT_UID" ] then echo "You are root." else echo "You are not root" fi exit 0

此脚本的输出取决于运行它的用户。它将根据$UID匹配根用户。

39.从文件中删除重复行

文件处理需要相当长的时间,并在许多方面阻碍了管理员的工作效率。例如,在文件中搜索重复项可能会成为一项艰巨的任务。幸运的是,您可以使用一个简短的shell脚本来完成此操作。

#! /bin/sh echo -n "Enter Filename-> " read filename if [ -f "$filename" ]; then sort $filename | uniq | tee sorted.txt else echo "No $filename in $pwd...try again" fi exit 0

上面的脚本逐行遍历文件并删除所有重复的行。然后,它将新内容放入新文件,并保持原始文件的完整性。

40.系统维护

我经常使用一个小的Linuxshell脚本来升级我的系统,而不是手动升级。下面的简单shell脚本将向您展示如何做到这一点。

#!/bin/bash echo -e "\n$(date "+%d-%m-%Y --- %T") --- Starting work\n" apt-get update apt-get -y upgrade apt-get -y autoremove apt-get autoclean echo -e "\n$(date "+%T") \t Script Terminated"

该脚本还处理不再需要的旧包。您需要使用sudo运行此脚本,否则它将无法正常工作。

作者:执着的花猫Jp,侵删

另外更多shell脚本推荐阅读→:Shell脚本不会写?100个经典脚本范例,拿走即用真的太绝了

如果本文对你有帮助的话,欢迎点赞&在看&转发,这对我继续分享&创作优质文章非常重要。感谢

如有错误或其它问题,欢迎小伙伴留言评论、指正。

更多相关Linux运维技术文章,请持续关注:程序员加油站



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3