首页
学习
活动
专区
圈层
工具
发布

Linux:编写 Shell 脚本时如何优雅地处理函数返回状态,多行文本和脚本路径

在 Linux 环境下编写 Shell 脚本时,能够灵活处理函数的返回状态以及获取脚本的实际路径是非常有用的技能。...本文将详细介绍如何让函数返回执行状态而不是退出脚本,并推荐使用的获取脚本所在位置的方法。...一、让函数返回执行状态而不是退出脚本 在编写 Shell 脚本时,我们经常需要编写函数来实现代码的模块化和重用。然而,如果不小心使用了 exit 命令,整个脚本会被退出,这并不是我们想要的结果。...完整示例 以下是一个完整的示例,展示如何同时获取脚本所在的位置和调用者所在的位置: bash #!...总结 在 Shell 脚本中,正确处理函数返回状态、设计和使用 main 函数、利用 Heredoc 处理多行文本以及获取脚本所在位置是编写高质量脚本的重要技巧。

64210

如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理

在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。...这是一个语言级的问题 函数/模块的错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。...这也是一个语言级的问题 服务/系统的错误信息返回: 微服务/系统在处理失败时,如何返回一个友好的错误信息,依然是需要让调用方优雅地理解和处理。...---   下一篇文章是《如何在 Go 中优雅的处理和返回错误(2)——函数/模块的错误信息返回》,笔者详细整理了 Go 1.13 之后的 error wrapping 功能,敬请期待~~ --- 本文章采用...原文标题:《如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理》 发布日期:2021-09-18 原文链接:https://cloud.tencent.com/developer/article

11.5K151
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    单片机开发之C语言编程基本规范

    为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。本标准规定了程序设计人员进行程序设计时必须遵循的规范。...7) 局部效率:某个模块/子模块/函数的本身效率高。 编制函数的基本原则: 1) 单个函数的规模尽量限制在200行以内(不包括注释和空行)。一个函数只完成一个功能。...通常使用动宾词组为执行某操作的函数命名。 5) 函数的返回值要清楚明了,尤其是出错返回值的意义要准确无误。...6) 不要把与函数返回值类型不同的变量,以编译系统默认的转换方式或强制的转换方式作为返回值返回。 7) 减少函数本身或函数间的递归调用。 8) 尽量不要将函数的参数作为工作变量。...7.1.1 头文件的形式 MCU程序中的头文件包括面向硬件对象头文件、公共头文件和总头文件。

    2.3K20

    正则表达式来了,Excel中的正则表达式匹配示例

    当需要在单元格区域中找到某个值时,可以使用MATCH函数。在单元格中查找特定字符串时,FIND函数和SEARCH函数非常方便。如何知道单元格中是否包含与给定模式匹配的信息?...关于RegExpMatch,你应该知道的三件事 在进行实际计算之前,注意以下几点: 1.该函数可以处理单个单元格或单元格区域。在后一种情况下,结果以动态数组或溢出区域的形式返回到相邻单元格中。...\b字符表示单词边界,意味着SKU是单独的单词,而不是较大字符串(如23-MAR-2022)的一部分。 建立了模式后,可以继续编写公式。实质上,使用自定义函数与内置函数没有什么不同。...在下面的数据集中,我们将搜索前两组中有3位数字、最后一组中有4位数字的10位数字。这些组可以用句点、连字符或空格分隔。第一组可以用括号括起来,也可以不用括号括起来。...记住,我们的自定义函数可以一次处理多个单元格,Excel的总和可以在一个数组中累加值,下面是你要做的: 为RegExpMatch提供一个单元格区域引用,以便它返回一个包含TRUE和FALSE值的数组。

    25.2K30

    C语言_sprintf固定字符串输出位数

    一、前言 sprintf 函数是一个 C 语言中的函数,也被许多其他编程语言所支持。它允许你根据一组变量来格式化和存储一个字符字符串。....%01d", DS18B20 >> 4, DS18B20 & 0xF); 这里,我们使用了%02d和%01d格式化字符串来指定输出数字的位数。...该函数计算出对应的小时、分钟和秒数,并使用 snprintf 函数将格式化后的时间字符串写入到 timeStr 数组中。...注意,我们需要使用 %s 格式化字符串输出,并且需要使用 static 关键字声明 timeStr 数组,以便在函数返回后仍然可以访问。 【4】浮点数补齐 固定浮点数输出的长度。...具体来说: %8.2f 是格式化字符串,其中 %f 表示要输出的是一个浮点数,.2 表示要保留两位小数,而 8 则表示总宽度为8(不足部分右对齐,左边补空格)。

    2K40

    【一通百通】cphp的printf总结

    1.先说说PHP printf()函数: printf()函数的调用格式为: printf("", ); %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数...%s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g 自动选择合适的表示法 说明: (1)....例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。 ⑧如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。   ...、双精度实数 c 输出单个字符 s 输出字符串 2) 标志 标志字符为 -、+、# 和空格四种,其意义下表所示: 标 志 意义 - 结果左对齐,右边填空格 + 输出符号(正号或负号) 空格 输出值为正时冠以空格...3) 输出最小宽度 用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。 4) 精度 精度格式符以“.”开头,后跟十进制整数。

    60130

    c语言输出整型量格式符,C语言输出格式(详细)

    大家好,又见面了,我是你们的朋友全栈君。 C语言格式化输出 一、printf()函数 printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。...三、规定符说明 说明1:对于d% (1)%md: 指定输出的宽度。数据位数小于m,左端补空格;大于m,按实际位数输出。比如说%3d 表示输出3位整型数,不够3位右对齐。...例如%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。 (2)%ld: 输出长整型数据。比如下面的就不能用%d。...数据位数小于m,左端补空格;大于m,按实际位数输出 //比如说%3d 表示输出3位整型数,不够3位右对齐,输出结果为:____23 printf(“指定输出的宽度输出:a=%4d\n”,a); //%ld...printf(“控制字符串6个字符的输出: g=%.6s\n”,g); //%c单个字符输出 printf(“单个字符输出: f=%c\n”,f); //%p 输出指针的值 printf(“指针的值输出

    6.2K20

    万字肝货 | 讲述Python在 高中信息技术 中的6大应用问题!

    2.Python编程求解 如果使用Python语言来编写程序的话,可使用for循环、range()函数和if条件判断来完成。...先使用“heads = 35”和“feet = 94”两个赋值语句,保存鸡和兔的总头数和总脚数; 接着使用range()函数进行for循环,让鸡的数目从1开始计数加1循环,循环体中的if条件为“2x +...如果将题目进行“升级”,鸡和兔的总头数与总脚数均由用户从键盘输入,仍然来求鸡和兔的数目,应该如何编写程序代码呢?...首先使用标准输入函数input来接收用户从键盘上输入的信息,比如“heads = input('请输入鸡和兔的总头数:')”和“feet = input('请输入鸡和兔的总脚数:')”。...米粒总数的计算结果与循环求和法一致,它们的总质量是个12位数字,约是3547.5亿吨!当时,国王无论如何也拿不出数量如此庞大的大米,根本就填不满宰相的棋盘。

    3.3K20

    go 格式化输出

    %e 和 %f 的默认精度为 6;但对于 %g 而言,它的默认精度为确定该值所必须的最小位数。   对大多数值而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格。...,有时紧跟着单个字符(占位符),并以小括号括住的描述结尾。 【扫描】   一组类似的函数通过扫描已格式化的文本来产生值。...Scanln、Fscanln 和 Sscanln 在换行符处停止扫描,且需要条目紧随换行符之后;Scanf、Fscanf 和 Sscanf 需要输入换行符来匹配格式中的换行符;其它函数则将换行符视为空格...当以某种格式进行扫描时,无论在格式中还是在输入中,所有非空的连续空白字符 (除换行符外)都等价于单个空格。...由于这种限制,格式字符串文本必须匹配输入的文本,如果不匹配,扫描过程就会停止,并返回已扫描的实参数。

    3.3K40

    C++打怪 之 编程风格指南 V1.0

    并且, 有时候为了其他函数保持一致, 你可能不得不有所变通. 1.2 编写简短函数 总述 我们倾向于编写简短, 凝练的函数. 说明 长函数有时是合理的, 因此并不硬性限制函数的长度....1.5 函数返回类型后置语法 总述 只有在常规写法 (返回类型前置) 不便于书写或不便于阅读时使用返回类型后置语法. 定义 C++ 现在允许两种不同的函数声明方式....简要重述函数功能是可以的, 但注释重点要放在如何实现上. 3.5 变量注释 总述 通常变量名本身足以很好说明变量用途。某些情况下,也需要额外注释说明。...4.4 函数声明与定义 总述 返回类型和函数名在同一行,参数也尽量放在同一行,如果放不下就对形参进行分行,分行方式与函数调用一致。...如果返回类型和函数名在一行放不下, 分行. 如果返回类型与函数声明或定义分行了, 不要缩进. 左圆括号总是和函数名在同一行. 函数名和左圆括号间永远没有空格. 圆括号与参数间没有空格.

    1.5K50

    Oracle数据库之单行函数详解

    本章只讲解使用,后面会讲解如何去开发用户自己的函数(PL/SQL 编程) 6.1.1 单行函数语法 ​ funcation_name(列|表达式[,参数1,参数2,]) ​ 函数名称(列 | 表达式 |...不管如何取消空格,中间的空格可是无法消除掉的。...函数名称 描述 1 ROUND(数字[,保留小数]) 对小数进行四舍五入,可以指定保留位数,如果不指定,则表示将小数点之后的数字全部进行四舍五入 2 TRUNC(数字[,截取位数]) 保留指定位数的小数...,如果不为null则返回结果一,为空则返回结果二 3 NULLIF(表达式一,表达式二) 比较表达式一和表达式二的结果是否相等,如果相等返回NULL,如果不相等返回表达式一 4 DECODE(列|值,判断值...不过严格来讲,CASE表达式本身并不属于一种函数的范畴,它的主要功能是针对于给定的列或者字段进行依次判断,在 WHERE 中编写判断语句,而在 THEN 中编写处理语句,最后如果都不满足则使用 ELSE

    3.1K10

    MySQL【知识改变命运】02

    BIGINT[(M)] 8byte 取值范围 -2^63 ~ 2^63-1 ,⽆符号取值范围 2^64-1 FLOAT[(M,D)] 4byte 单精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到...⼩数点后7位 DOUBLE[(M,D)] 8byte 双精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后15位。...DECIMAL[(M[,D])](decimal) 动态 不存在精度损失,M是总位数,D是⼩数点后的位数。DECIMAL的最⼤位数(M)为65,最⼤⼩数位数(D)为30。...注意的一些事项: 1:DECIMAL是实际如何存储数据的 比如这段数字,首先会统计这串数字大概有多少位,然后用两个int型把整数部描述清楚,然后用三个int型把小数部位描述清楚,然后最后的剩下的位数用较小的数据类型描述清楚...⻓度,取值范围 0 ~ 255 ,省略则⻓度为 1 ,在存储时总是⽤空格向右填充到指定的⻓度,获取列的值时会从尾部删除空格。

    22510

    C++版 - 剑指Offer 面试题12:打印1到最大的N位数 题解

    但如果是面试中面试官故意不告诉你n的范围,那就是等着机会坑你的。对于int和long long范围内。能直接用单个变量解决;如果位数多了,就需要用高精度算法。...其他的就不需要多说了,对于大数的加1、输出等等操作都要自己写函数完成。...C语言中的 scanf 函数是有返回值的,它的返回值可以分成三种情况:   1) 正整数,表示正确输入参数的个数。...为什么前面 scanf 的格式串里面,%s和%c中间需要空格呢?   那是因为如果没空格的话。。。oldchar输入的就是空格了= =. 3....顺便说一下,printf的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

    61430

    c语言输入输出格式

    格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。...若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0。 4.精度 精度格式符以“.”开头,后跟十进制整数。...字符输出函数 putchar 函数 putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。...1.getchar函数只能接受单个字符,输入数字也按字符处理。...2.使用本函数前必须包含文件“stdio.h”。 3.在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。

    3.4K20

    学习用Excel数据分析?恐怕还缺一本圣经。

    它创建于2010年,是随PowerPivot的第一个版本PowerPivot for Excel 2010一起发布的(在2010年,PowerPivot的拼写还没有空格;空格是在2013年引入的)。...实际上,如果将Excel中的某个范围定义为智能表格(使用创建表功能),那么你可以在Excel中编写引用表和列的表达式。...函数的语法和DAX的一个不同之处是引用整列的方式。...02 Excel函数和DAX:两种函数式语言 Excel函数和DAX这两种语言非常相似的地方是,它们都是函数式语言。 函数式语言是由基础函数调用的表达式组成的。...通过对本书的学习,你将了解如何使用DAX语言进行商业智能分析、数据建模和数据分析;你将掌握从基础表函数到高级代码,以及模型优化的所有内容;你将确切了解在运行DAX表达式时,引擎内部所执行的操作,并利用这些知识编写可以高速运行且健壮的代码

    3.1K20

    Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配

    我们每天还会识别各种其他文本模式:电子邮件地址中间有@符号,美国社会保障号码有九位数字和两个连字符,网站 URL 通常有句点和正斜杠,新闻标题使用标题大小写,社交媒体标签以#开头且不包含空格,等等。...正则表达式接下来的几个部分很简单:三位数,后面是另一个分隔符,再后面是四位数。最后一部分是可选的扩展名,由任意数量的空格组成,后跟ext、x或ext.,再后跟 2 到 5 个数字。...括号和句点在正则表达式语法中有特定的含义。如何指定希望正则表达式匹配实际的括号和句点字符? findall()方法返回字符串列表或字符串元组列表。是什么让它返回一个或另一个?...如何编写一个正则表达式来匹配每三位数用逗号分隔的数字?...强密码检测 编写一个使用正则表达式的函数,以确保传递给它的密码字符串是强的。强密码被定义为长度至少为八个字符,包含大写和小写字符,并且至少有一位数字。

    7.5K40

    Python练手题目(八)

    创建一个电话号码 编写一个接受10个整数(0到9之间)数组的函数,它以电话号码的形式返回这些数字的字符串。...Python的函数很多,所以我们平时在刷题时,用什么函数需要根据题目要去考虑,然后最好把使用的函数记下来,到最后你会发现,Python的本质是灵活运用函数处理实际问题。...人性化的可读性时间 编写一个函数,它以非负整数(秒)作为输入,并以人类可读的格式返回时间(HH:MM:SS) - HH =小时,填充到2位数,范围:00 - 99 - MM =分钟,填充到2位数,范围...:00 – 59 - SS =秒,填充到2位数,范围:00 - 59 最长时间永远不会超过359999(99:59:59) 题目的本质是时分秒之间的一个换算,当然还需要考虑时和分的余数的取整,代码如下...#{:02}数字宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格 print(make_readable(359999)) print(make_readable(60)) print(make_readable

    61720
    领券