bash脚本编程入门_Bash编程入门

 2023-09-18 阅读 22 评论 0

摘要:bash脚本编程入门执行bash脚本? 对Unix的最初希望之一是,它将使日常的计算机用户能够微调其计算机以适应其独特的工作风格。 在过去的几十年中,对计算机定制的期望已经降低,许多用户将他们收集的应用程序和网站视为他们的“定制环境”。 原因之一是许多

bash脚本编程入门

执行bash脚本? 对Unix的最初希望之一是,它将使日常的计算机用户能够微调其计算机以适应其独特的工作风格。 在过去的几十年中,对计算机定制的期望已经降低,许多用户将他们收集的应用程序和网站视为他们的“定制环境”。 原因之一是许多操作系统的组件未打开,因此普通用户无法使用其源代码。

但是对于Linux用户而言,自定义程序是可以实现的,因为整个系统都基于可通过终端获得的命令。 该终端不仅是用于快速命令或深入故障排除的界面; 这是一个脚本环境,可以通过为您处理日常任务来减少您的工作量。

如何学习编程

shell脚本调用php方法, 如果您以前从未做过任何编程,可能会遇到两个不同的挑战,这可能会有所帮助:一个是了解代码的编写方式,另一个是了解编写的代码。 你可以学习语法 -但你不会不知道什么话都可以对你的语言跑远。 在实践中,您一次就开始学习这两个概念,因为如果没有单词安排就无法学习语法,因此最初,您将使用基本命令和基本编程结构编写简单的任务。 一旦熟悉了基础知识,就可以探索更多的语言,从而使程序可以做越来越重要的事情。

在Bash中 ,您使用的大多数单词是Linux命令。 语法是Bash。 如果您已经经常使用Bash,则向Bash编程的过渡相对容易。 但是,如果您不使用Bash,您将很高兴地了解到它是为清晰和简单而构建的简单语言。

互动设计

shell脚本有什么用、 有时,学习编程时最难弄清的事情就是计算机可以为您做些什么。 显然,如果一台计算机可以自己完成所有操作,那么您就不必再触摸计算机了。 但是现实是人类很重要。 找到您的计算机可以帮助您的事情的关键是注意整个星期中重复执行的任务。 计算机对重复的处理特别好。

但是要使您能够告诉计算机执行某项操作,您必须知道如何执行此操作。 这是Bash擅长的领域:交互式编程。 在终端中执行动作时,您还将学习如何编写动作脚本。

例如,我曾经负责将大量PDF书籍转换为墨水不足和打印友好的版本。 一种方法是在PDF编辑器中打开PDF,从数百张图像(算作图像的页面背景和纹理)中选择每张图像,然后删除它们,然后将其保存到新的PDF中。 这样一本书只需要半天。

我的第一个想法是学习如何编写PDF编辑器脚本,但是经过数天的研究,我找不到可以编写脚本的PDF编辑应用程序(非常难看的鼠标自动化技巧)。 因此,我将注意力转向了从终端内部找出完成任务的方法。 这导致了一些新发现,包括GhostScript,PostScript的开源版本(打印机语言PDF所基于)。 通过使用GhostScript处理几天的任务,我确认这是解决我的问题的方法。

制定基本的脚本来运行命令仅是复制命令和我用来从PDF中删除图像并将其粘贴到文本文件中的选项的问题。 据推测,将文件作为脚本运行会产生相同的结果。

将参数传递给Bash脚本

在终端中运行命令与在Shell脚本中运行命令之间的区别在于,前者是交互式的。 在终端中,您可以随时进行调整。 例如,如果我刚刚处理了example_1.pdf并准备处理下一个文档,以适应我的命令,则只需要更改文件名即可。

脚本的存在是为了您不必照看它。 这就是命令(以及运行它们的shell脚本)接受参数的原因。

在Shell脚本中,有一些预定义的变量可以反映脚本的启动方式。 初始变量为$ 0 ,它代表发出的启动脚本的命令。 下一个变量是$ 1 ,它表示传递给shell脚本的第一个“参数”。 例如,在命令echo hello中 ,命令echo$ 0,单词hello$ 1 。 在命令echo hello world中 ,命令echo$ 0hello$ 1world$ 2

在交互式外壳中:

$ echo hello world
hello world

在非交互式shell脚本中,您可以以非常直观的方式执行相同的操作。 将此文本键入文本文件并将其另存为hello.sh

 echo hello world 

现在运行脚本:

$ bash hello.sh
hello world

那行得通,但是并没有利用脚本可以接受输入这一事实。 将hello.sh更改为:

 echo $1 

运行两个带引号的参数一起运行的脚本:

$ bash hello.sh "hello bash"
hello bash

对于我的PDF缩减项目,我真的需要这种非交互性,因为每个PDF都花了几分钟来压缩。 但是,通过创建一个接受我的输入的脚本,我可以一次将几个PDF文件全部提交给脚本。 该脚本按顺序处理了每个脚本,这可能需要半小时或更长时间,但是我可以用半小时来完成其他任务。

流量控制

创建Bash脚本是完全可以接受的,从本质上讲,它是完成需要重复的任务的确切过程的笔录。 但是,可以通过控制信息流过脚本的方式来使脚本更强大。 管理脚本对数据的响应的常用方法是:

  • 如果/那么
  • for循环
  • while循环
  • 案例陈述

计算机不是智能的,但是它们擅长比较和解析数据。 如果您在脚本中进行一些数据分析,则脚本会变得更加聪明。 例如,基本的hello.sh脚本将运行是否有任何回声:

$ bash hello.sh foo
foo
$ bash hello.sh

$

如果在未收到任何输入时提供帮助消息,将会更加用户友好。 那是一个if / then语句,如果您以一种基本的方式使用Bash,则您可能不知道Bash中是否存在这样的语句。 但是编程的一部分是学习语言,通过一些研究,您将了解if / then语句:

if [ "$1" = "" ] ; then
echo "syntax: $0 WORD"
echo "If you provide more than one word, enclose them in quotes."
else
echo "$1"
fi

运行此新版本的hello.sh会导致:

$ bash hello.sh
syntax: hello.sh WORD
If you provide more than one word, enclose them in quotes.
$ bash hello.sh "hello world"
hello world

通过脚本工作

无论您是要从PDF文件中删除图像,还是要管理杂乱的Downloads文件夹,还是要创建和配置Kubernetes图像,都需要学习编写Bash脚本,这是使用Bash然后学习采用这些脚本的方法从仅命令列表到响应输入的内容。 通常这是一个发现过程:您一定会找到新的Linux命令来执行您无法想象的可以通过文本命令执行的任务,并且您将找到Bash的新功能以使您的脚本适应您想要的所有不同方式他们跑。

学习这些技巧的一种方法是阅读其他人的脚本。 了解人们如何在其系统上自动化死记号命令。 查看您所熟悉的事物,并查找有关陌生事物的更多信息。

另一种方法是下载我们的Bash电子书编程简介 。 它向您介绍了特定于Bash的编程概念,并且通过学习到的构造,您可以开始构建自己的命令。 当然,它是免费下载的,并根据Creative Commons许可进行许可,因此,请立即获取副本。

下载我们的Bash电子书编程简介!

翻译自: https://opensource.com/article/20/4/bash-programming-guide

bash脚本编程入门

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/72768.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息