首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解bash脚本调试机制

如果脚本比较复杂, 我们可以通过使用环境变量PS4配合调试用内置变量用于输出更加详细信息: > export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]...trapERR关键字用于在解释出现错误时执行预设操作, 例如打印出错命令: trap 'echo $BASH_COMMAND' ERR 但鉴于使用trap进行调试执行效率过低, 建议在较为复杂脚本中直接使用调试选项或者使用...# -x 效果 Fri 28 Feb 2020 06:55:37 PM CST > set +vx # 取消参数 set +vx 通过使用-f选项可以显著减少脚本转义字符: > ls ?...: var: unbound variable 为防止误操作覆盖文件数据, 设置禁止重定向到已经存在文件: > set -C # 等价于 set -o noclobber > touch test...* > ll * -rw-rw-r-- 1 remilia remilia 0 Mar 1 20:09 '*' 到此这篇关于详解bash脚本调试机制文章就介绍到这了,更多相关bash 脚本调试

1.3K31
您找到你想要的搜索结果了吗?
是的
没有找到

bash shell:脚本修改profile文件更新LD_LIBRARY_PATH示例

sed编辑器被称作流编辑器(stream editor),跟普通交互式文件编辑器相反。在交互式编辑器(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据文本。...流编辑器则会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。 于是我们可以利用sed编辑器在安装脚本实现对profile文件修改。...下面我们以一个实际应用例子来说明: 我已经有一个叫CASSDK项目,这个项目没有可执行文件,只是一组动态库文件提供别的应用程序调用(比如java),需要为它写一个安装脚本脚本作用是将在将文件复制到指定安装目录...另外还要写一个卸载脚本,在删除安装目录后,同时将profileLD_LIBRARY_PATH变量也同步修改。...下面是原始profile脚本片段 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/

2.9K20

统计文件夹下某类文件大小脚本

hexo 生成静态文件主要有两类,一类是 markdown 转换后 html 文件,另一大块主要是 文章引用图片。...由此产生了一个需求,我需要统计 pubic 文件夹下(包括子文件夹)图片占用空间大小。 统计脚本 经过几个小时编写,终于完成了这个统计脚本 count_file.sh 。.../bin/bash # 统计一个目录下指定类型或限制某种类型以外文件大小,包括子目录 help() { echo "Description: 用于查找某个目录下特定类型文件数量和总大小,...:$((totalSize/1024))M" fi 基础命令 这个脚本难点在于命令行参数处理,因为写这个脚本查阅了一些资料,主流方案是使用下面两个命令: getopts 是 Linux 系统一个内置变量...给你shell脚本写一个--help文档 编写可接受选项和参数shell脚本 getopts 使用

1.2K20

shell 脚本统计文件夹下所有文件字符数

最近写了一些文章存放在一个文件夹下,今天想看看自己到底写了多少内容。于是想写一个脚本来进行统计。最终代码如下: #!.../bin/bash files=$(ls) all=0 for i in $files; do if [ $i !...'wc.sh' ]; then head -n1 $i t=$(wc -m $i | cut -d ' ' -f5) all=$(($all+$t)) echo ' 统计字数...: '$t fi done echo '共计字数'$all 原理非常简单,循环所有文件,读取第一行显示,(因为我第一行是标题),然后利用 wc 统计文件字数,在循环时候进行累加。...然后就展示出该文件有多少字符,而最终一共有多少字符了。 小脚本解决大问题,每天都积累一点点。 本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

2.4K20

使用 Bash 脚本从 SAR 报告获取 CPU 和内存使用情况

大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...编辑 sysstat 文件并将 HISTORY=7 更改为 HISTORY=28。 在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件平均值。...脚本 1:从 SAR 报告获取平均 CPU 利用率 Bash 脚本bash 脚本从每个数据文件收集 CPU 平均值并将其显示在一个页面上。...2:从 SAR 报告获取平均内存利用率 Bash 脚本bash 脚本从每个数据文件收集内存平均值并将其显示在一个页面上。...3:从 SAR 报告获取 CPU 和内存平均利用率 Bash 脚本bash 脚本从每个数据文件收集 CPU 和内存平均值并将其显示在一个页面上。

1.9K30

【LinuxUnix】Bash“$”使用汇总

1 概述 在bash脚本中经常需要用到与“$”相关特殊指令,本文将常见该类指令含义进行了总结,供后续使用参考。...2 指令说明 2.1 $n(n=0, 1, 2, 3, …) n=0时,“0”表示bash脚本文件名,在数值模型,可以将脚本名命名为模型模块名,通过0获取到文件名并加以处理即可获取到相应模块,从而自动化执行各个模块...为0时,继续按照程序逻辑执行,非零时直接退出程序(exit+非零数字)。 2.3 $$ Bash脚本本身运行时进程ID号(PID)。 2.4 $!...2.5 $* 所有参数列表,以" 2.6 $# 添加到Shell参数个数,仅在shell脚本使用。 2.7 $@ 所有参数列表,与$*类似,不过该命令仅在shell脚本使用。...不能出现在双引号,否则会报错 -bash: !": event not found。

26010

如何从Bash脚本本身获得其所在目录

问: 如何从Bash脚本本身获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录下文件进行操作,像这样: $ ....但是在以相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录绝对路径: #!...为什么我不能在脚本使用"cd"来更改目录 为什么在可执行文件脚本名称之前需要..../(点-斜杠),以便在bash运行它 shell脚本对编码和行尾符敏感吗

24520

如何利用Bash脚本监控Linux内存使用情况

如果你只有很少系统并且想要监视它们,那么编写一个小 shell 脚本可以使你任务变得非常简单。 在本教程,我们添加了两个 shell 脚本来监视 Linux 系统上内存利用率。...方法-1:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果只想在系统达到给定阈值时通过邮件获取当前内存利用率百分比,请使用以下脚本。 这是个非常简单直接单行脚本。...在大多数情况下,我更喜欢使用这种方法。 当你系统达到内存利用率 80% 时,它将触发一封电子邮件。...* 如何使用 shell 脚本自动执行日常活动? 方法-2:用 Linux Bash 脚本监视内存利用率并发送电子邮件 如果要在邮件警报获取有关内存利用率更多信息。...使用以下脚本,其中包括基于 top 命令和 ps 命令最高内存利用率和进程详细信息。 这将立即让你了解系统运行情况。 当你系统达到内存利用率 “80%” 时,它将触发一封电子邮件。

2.1K10

linux Bash脚本判别使用身份方法示例

经常要在bash脚本里面或者直接对脚本本身加上sudo运行命令,但是这引发了一系列问题。...比如用sudo时候,脚本~或$HOME指代用户文件这个变量,到底是应该指向我真正用户文件夹如/home/pi呢,还是指向了超级管理员用户文件夹/root/呢?...bash脚本 sudo-bash: 以sudo执行bash脚本 root-any: 以root用户登录 很多变量、环境变量在这4情况下,会经常出现混乱!...# 从结果可以看到,即使是sudo身份执行脚本脚本里面是否加sudo也会不同!...Stackoverflow,比较一致性倾向就是使用$SUDO_USER这个环境变量。而测试也的确,它是最“稳定”,即在不同权限、OS系统下,都能始终如一(只限有sudo系统)。

2.5K20

Bash尖括号更多使用方法

通过使用 <,可以实现“欺骗”效果,让其它命令认为某个命令输出是一个文件。 例如,在进行备份文件时候不确定备份是否完整,就需要去确认某个目录是否已经包含从原目录复制过去所有文件。...在上面的例子,就使用了 < 让 diff 认为两个 ls 命令输出结果都是文件,从而能够比较它们之间差异。 要注意,在 < 和 (…) 之间是没有空格。...也就是说,在备份过程可能发生了问题,导致这个文件没有被成功备份。如果 diff 没有显示出任何输出结果,就表明两个目录文件是一致。...在上面的例子,就使用了 tr 将字符串所有小写字母都转换为大写字母。 要理解是,这个传递过程重点不是变量,而是变量值,也就是字符串 Hello World。...总结 使用 这两个简单符号,原来可以实现这么多功能,Bash 又一次为工作灵活性提供了很多选择。

90821

【shell脚本】$ 在shell脚本使用

shell脚本 '$' 与不同符号搭配其表示意义也会不同 特殊标志符 含义 $0 当前脚本文件名 $n 传递给脚本或函数参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数参数个数 $* 传递给脚本或函数所有参数 $@ 传递给脚本或函数所有参数 $?...上个命令退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 形式输出所有参数。.../bin/bash echo "file name $0" echo "first param $1" echo "pid $$" echo "total num of param $#" echo

6.1K20

如何在Linux 系统上比较Bash脚本字符串?

Bash 脚本中比较字符串需求相对普遍,可用于在继续执行脚本下一部分之前检查某些条件。 字符串可以是任何字符序列。...在本教程,我们将向您展示如何在Linux 系统上比较Bash 脚本字符串,我们将在一个简单 if/else Bash 脚本上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作...在本教程,您将学习: 如何在 Bash 中比较字符串 比较字符串 if/else Bash 脚本示例 Bash 脚本:字符串比较示例 例1 在 Bash 脚本,您通常会将一个或两个字符串存储为变量...总结 在本教程,我们了解了如何在 Bash 脚本中比较字符串,尤其是在 Bash 脚本上下文中if/else。...当然,此功能可以扩展到更健壮脚本,这些脚本可以读取用户输入或使用 case 运算符等。这些都是在 Bash 中比较字符串所需所有比较方法。

3.8K00

linux编写同步文件脚本

搭集群最麻烦就是修改配置文件,如果只用修改一个机器上配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉!...编写一个名为xsync脚本文件: 作用: 将当前机器文件,同步到集群所有机器相同路径下!...hadoop102:/A/a , 执行脚本后,将此文件同步到集群中所有机器 /A/a 用户在使用xsync时,只需要传入要同步文件即可 xysnc a 不管a是一个相对路径还是绝对路径,都需要将.../bin/bash #校验参数是否合法 if(($#==0)) then echo 请输入要分发文件!...bin目录,如果没有就新建一个bin目录,因为这目录是在全局环境变量,放进去后无论在哪个目录下都可以执行这个脚本文件!

2.3K10
领券