iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Shell脚本编程:构筑程序基石的基本元素有哪些
  • 748
分享到

Shell脚本编程:构筑程序基石的基本元素有哪些

2024-04-02 19:04:59 748人浏览 薄情痞子
摘要

这篇文章主要介绍“shell脚本编程:构筑程序基石的基本元素有哪些”,在日常操作中,相信很多人在Shell脚本编程:构筑程序基石的基本元素有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,

这篇文章主要介绍“shell脚本编程:构筑程序基石的基本元素有哪些”,在日常操作中,相信很多人在Shell脚本编程:构筑程序基石的基本元素有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell脚本编程:构筑程序基石的基本元素有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

此系列课程的 Shell 适用bash和zsh。

➜  ~ bash --version |grep version GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu) ➜  ~ zsh --version zsh 5.8 (x86_64-ubuntu-linux-gnu)

1.数学表达式

学习编程,我们本能的起点自然是如何进行数学运算,如何处理数学表达式。在bash中,实现这一点稍微有些繁琐,我们需要将表达式放入到  $((...))中。

echo $(( 60*60*24 )) #计算一天有多少秒 86400

先暂且不理会$((...))的具体含义,先记着需要将我们所熟知的数学表达式嵌入其中即可,因为如果直接键入数学表达式,会当场报错。

$ 56 + 72 56 + 72 56: command not found

再看一个复合表达式:

$ echo $(( (3+5+7) * (2+(4*6)) )) echo $(( (3+5+7) * (2+(4*6)) )) 390

作为shell-script的第一步,现在我们知道,终端就是一个便携的计算器。

2.命名与变量

我们的记忆力有限,不大容易记住一长串的数字或者一段程序。编程语言为此提供的核心解决途径就是命名。命名的方式简单直接。

$ radius=5 # 注意等号两侧不能有空格 radius=5

读取变量的时候,则需要前缀 $将其解索引

$ echo The radius is $radius. The radius is 5.

接下来,我们计算圆的面积:

$ radius=5; pi=3; area=$(( $pi*$radius**2 )); echo $area 75

于是我们可以直接用抽象的名字进行数学运算。

3.常量与环境变量

我们可以命名变量,但是变量的取名并非完全自由,不能与系统的环境变量相冲突。比如查看当前bash的进程号:

$ echo $BASHPID 15190

查阅完整的进程树:

$ pstree -asp $BASHPID systemd,1 splash   └─tmux: server,2628 new -s spirit       └─bash,2629           └─bash,15190 -v               └─pstree,26568 -asp 15190

倘若好奇系统中有多少环境变量,应该求问env或者printenv命令:

$ env | nl | tail -n 5     87  DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus     88  MAIL=/var/mail/gaowei     89  LC_NUMERIC=en_US.UTF-8     90  KONSOLE_DBUS_WINDOW=/windows/1     91  _=/usr/bin/env

如结果所示,当前系统中有91个环境变量。

4.函数

与变量相比较,函数是更为强大更具表现力的抽象工具。我们可以将 function 当作执行特定任务的‘黑匣子’。函数的的语法为:

function function_name { command... }   或者 function_name () { command... }

函数的应用,我们还是从熟悉的简单数学运算出发,求给定数的平方。

$ function square {      echo $(( $1 ** 2 )) }

函数体中$1是新鲜事物,乃是指代第一个参数的位置参数,应用这个函数:

$ square 11 121 $ square 121 14641

5.条件语句

到目前为止,我们定义的程序表达力expressive-power极为有限。因为我们尚且没有途径做出种种测试,并根据测试的不同结果来决定下一步的操作,也就是赋予程序以智能。

此时,我们需要引入条件判断,基本结构为:

if commands; then    commands  [elif commands; then    commands...]  [else    commands]  fi

我们尝试求绝对值的函数:

function abs {     if (( $1 > 0 )); then echo $1     elif (( $1 = 0 )); then echo 0     else echo $(( -$1 ))     fi }

测试新定义的abs函数:

abs -110 110

除了三项简单的逻辑判断符号 <>=之外,还可以使用复合逻辑操作符:

$ command1 && command2 # and 逻辑  $ command1 || command2 # or 逻辑  $ ! # not

6.循环结构

Looping结构,首先想到的当然是 for 语句:

$ for i in *; do echo $i; done anaconda3 backup.doom.d backup.gnus.el  $ for i in {A..E}; do echo $i; done A B C D E

以及 while 语句

count=1 while [[ "$count" -le 5 ]]; do           echo "$count"           count=$((count + 1)) done echo "Finished."

7.读取键盘输入

程序极为重要的一点是与用户的沟通与互动。我最爱用read取代xargs,例如这样的结构:

find . -iname "*.pdf" | while read line; do something

Read 有多个有意思的参数,首先是-p,prompt

read -p "Enter one or more values.>" echo "REPLY = '$REPLY'"

其次 -t 限定用户的反馈时间:

read  -t 10 -p  "Enter secret passphrase"

到此,关于“Shell脚本编程:构筑程序基石的基本元素有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Shell脚本编程:构筑程序基石的基本元素有哪些

本文链接: https://www.lsjlt.com/news/84203.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell脚本编程:构筑程序基石的基本元素有哪些
    这篇文章主要介绍“Shell脚本编程:构筑程序基石的基本元素有哪些”,在日常操作中,相信很多人在Shell脚本编程:构筑程序基石的基本元素有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2022-10-19
  • shell脚本编程的规范有哪些
    在编写shell脚本时,可以遵循以下规范:1. 注释:在脚本的开头或相关代码部分添加注释,解释脚本的功能,参数的含义,以及可能的注意...
    99+
    2023-09-22
    shell
  • Linux Shell脚本编程的注意事项有哪些
    本篇内容介绍了“Linux Shell脚本编程的注意事项有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、常用技巧代码如下:ssh u...
    99+
    2023-06-09
  • 微信小程序的基本运算符有哪些
    这篇文章主要介绍“微信小程序的基本运算符有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序的基本运算符有哪些”文章能帮助大家解决问题。基本运算符示例代码:var a ...
    99+
    2023-06-26
  • 外卖小程序开发的基本功能有哪些
    小编给大家分享一下外卖小程序开发的基本功能有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!外卖业的兴起使人们快速解决餐食问题变得非常方便。我国人口众多,食品外卖业市场广阔。为了方便人们订购食物,外卖小程序出现在人们生活...
    99+
    2023-06-27
  • 票务小程序开发的基本功能有哪些
    这篇文章主要讲解了“票务小程序开发的基本功能有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“票务小程序开发的基本功能有哪些”吧!看演唱会和各种球类比赛或者游览景点的时候,人们往往可以通过...
    99+
    2023-06-27
  • 母婴小程序开发的基本功能有哪些
    小编给大家分享一下母婴小程序开发的基本功能有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!随着二孩政策的全面放开,母婴行业迎来了更广阔的市场。许多珍贵的母亲太忙,无暇照顾孩子,也没有额外的精力和时间去线下商店购物。为了...
    99+
    2023-06-27
  • 美甲小程序开发的基本功能有哪些
    这篇文章主要介绍“美甲小程序开发的基本功能有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“美甲小程序开发的基本功能有哪些”文章能帮助大家解决问题。一、美甲小程序开发能解决什么问题? 美...
    99+
    2023-06-27
  • 开发教育小程序的基本功能有哪些
    这篇文章给大家分享的是有关开发教育小程序的基本功能有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。随着社会竞争的加剧,许多人意识到了社会竞争的重要性,希望在业余时间学习更多的知识,提高自己在职场的竞争力。为了...
    99+
    2023-06-27
  • 音乐小程序开发的基本功能有哪些
    这篇文章主要介绍音乐小程序开发的基本功能有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!俗话说,音乐没有国界。许多人可能不理解音乐的具体内容,但他们可以享受听音乐带来的乐趣和共鸣。有许多与音乐相关的小程序,如QQ...
    99+
    2023-06-27
  • 宠物小程序开发的基本功能有哪些
    本篇内容主要讲解“宠物小程序开发的基本功能有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“宠物小程序开发的基本功能有哪些”吧!宠物小程序开发的基本功能是什么?在线信息:宠物小程序定期更新关于...
    99+
    2023-06-27
  • Java程序员不能错过的基本框架有哪些
    这篇文章主要介绍“Java程序员不能错过的基本框架有哪些”,在日常操作中,相信很多人在Java程序员不能错过的基本框架有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2022-10-19
  • 网约车小程序开发的基本功能有哪些
    这篇文章主要介绍“网约车小程序开发的基本功能有哪些”,在日常操作中,相信很多人在网约车小程序开发的基本功能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网约车小程序开发的基本功能有哪些”的疑惑有所帮助!...
    99+
    2023-06-27
  • 房地产小程序开发的基本功能有哪些
    小编给大家分享一下房地产小程序开发的基本功能有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!买房是许多年轻人关心的话题,但是何时需要注意许多问题 买房子,例如...
    99+
    2023-06-27
  • 房屋租赁小程序开发的基本功能有哪些
    这篇文章主要介绍了房屋租赁小程序开发的基本功能有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于刚进入社会的每个年轻人来说,租房是很常见的事情。 过去,人们将房屋租给附...
    99+
    2023-06-27
  • 企业管理小程序开发的基本功能有哪些
    这篇文章主要介绍“企业管理小程序开发的基本功能有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“企业管理小程序开发的基本功能有哪些”文章能帮助大家解决问题。一、企业管理小程序开发概述:与客户关系管...
    99+
    2023-06-27
  • 公交查询小程序开发的基本功能有哪些
    这篇文章主要介绍“公交查询小程序开发的基本功能有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“公交查询小程序开发的基本功能有哪些”文章能帮助大家解决问题。1。公交车到站时间查询:公交车到站时间的...
    99+
    2023-06-27
  • 水果超市小程序开发的基本功能有哪些
    这篇文章主要介绍了水果超市小程序开发的基本功能有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。水果富含营养。在日常生活中,许多人喜欢吃水果。在移动互联网时代,为了给人们购...
    99+
    2023-06-27
  • 生鲜商城小程序开发的基本功能有哪些
    这篇文章主要介绍了生鲜商城小程序开发的基本功能有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在我们的生活中,生鲜食品已成为我们日常饮食的重要组成部分,以更好地满足用户的...
    99+
    2023-06-27
  • 同城货运小程序开发的基本功能有哪些
    今天小编给大家分享一下同城货运小程序开发的基本功能有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。同城货运小程序开发的基...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作