`
wsql
  • 浏览: 11788794 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Shell 脚本学习 — 简单的执行跟踪

 
阅读更多

程序是人写的,难免会出错。想知道你的程序正在做什么,有个好方法,就是把执行跟踪的功能打开。这会使得Shell显示每个被执行到的命令,并在前面加上"+ " ,一个加号后面跟着一个空格。

在脚本里,用 set -x 命令将执行跟踪的功能打开,然后再用 set +x 命令关闭它。这个功能对复杂的脚本比较有用,不过这里只用简单的程序来说明:

复制代码
cat > trace1.sh
#! /bin/sh

set -x           #打开跟踪功能
echo 1st echo    #做些事

set +x           #关闭跟踪功能
echo 2nd echo    #再做些事
^D               #以end-of-file结尾
复制代码
复制代码
chmod +x trace1.sh
./trace1.sh
+ echo 1st echo    #被跟踪的第一行
1st echo           #命令的输出
+ sex +x           #被跟踪的下一行
2nd echo           #下一个命令的输出
复制代码

执行时,set -x 不会被跟踪,因为跟踪功能是在这条命令执行后才打开的。同理,sex +x 会被跟踪,因为跟踪功能是在这条命令执行后才关闭的。最后的echo命令不会被跟踪,因为此时跟踪功能已经关闭。

分享到:
评论

相关推荐

    Shell脚本专家指南

    当我还在学习shell脚本编程的时候,我会经常参考一些由别人编写出来的实例,以进一步地扩展自己的视野。而结果往往是我发现一些正在困扰着自己的问题,我的同事和朋友们却早已发明了又酷又聪明的解决方案。因此,我...

    如何调试Linux shell脚本

    Shell提供了一些用于调试脚本的选项,如下所示: -n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出 -x 提供跟踪执行信息,将执行的每一条命令...

    debian-setup:此存储库的目的是跟踪各种Linux Debian设置文件,shell脚本等

    1.本回购的目的此存储库的目的是跟踪各种Linux Debian设置文件,shell脚本等。 使用了各种工具来帮助实现该目标,例如可以通过ssh到服务器的基于云的IDE Codeanywhere,以及用于轻松编辑Markdown的IDE Visual Studio...

    terraform:bash shell脚本的集合,用于使用Terraform自动执行各种任务

    bash shell脚本的集合,用于使用自动执行各种任务。 目录 入门 什么是Terraform? Terraform是用于基础结构的开放源代码工具,可让您安全且可预测地创建,更改和改善基础结构。 此仓库中包含的工具: terraform-...

    Google排名跟踪器:SEO:Python脚本+ Shell脚本和cronjob每天检查排名

    使用此python脚本,shell脚本和crontab,您可以通过几个简单的步骤自动执行Google排名检查器。 我将逐步解释如何实现此功能并使它每天运行。 需要注意的一件事是,当前该脚本不使用代理来检查关键字排名,因此,...

    shell的特殊变量实例详解

    shell或shell脚本的名字 $* 以一对双引号给出参数列表 $@ 将各个参数分别加双引号返回 $# 参数的个数 $_ 代表上一个命令的最后一个参数 $$ 代表所在命令的PID $! 代表最后执行的后台命令的PID ...

    linux shell 调试工具

    linux shell 调试工具 bash 可以设置断点、单步跟踪; 查看指令、变量值 等等 安装: tar -xvfz bashdb-5.0-1.1.2.tar.gz cd ./ bashdb-5.0-1.1.2 ./configuration make make install 使用: bashdb + 需要调试的脚本...

    otel-cli:OpenTelemetry命令行工具,用于从Shell脚本和类似环境发送事件

    它是用Go语言编写的,旨在用于Shell脚本和其他可用于发送跨度的最佳选项正在执行另一个程序的地方。 由于这需要在每次运行时连接到OTLP端点,因此强烈建议运行localhost opentelemetry收集器,这样不会导致程序...

    df-git:用于管理矮人要塞的Shell脚本使用git保存文件

    df-git通过跟踪git存储库中的更改来维护和同步您的Dwarf Fortress保存文件。 提供了两个脚本来完成df-git.sh和df-start.sh 。 df-git.sh工作方式类似于git本身,但始终作用于目录~/.df-git/ ,该目录中将保存您的...

    数据融合matlab代码-HLT_Tracker:HLTTracker的MATLAB和C实现

    运行Shell脚本文件以使用给定的设置运行跟踪算法。 运行shell脚本的终端命令是: sbatch --qos =免费batchScript_Detection35.sh 外壳文件包括使用某些设置运行跟踪器的命令。 例如,我们要求分配一定数量的CPU和每...

    SecureTransportScripts:用于管理 Axway 的 SecureTransport 安全文件传输产品套件的脚本

    安全传输脚本该存储库包含用于管理/自动化 Axway Secure... 该 shell 脚本可以每天作为 cron 作业执行,它将删除所有修改时间超过 30 天的文件(或您希望实施的任何保留策略)。 您需要编辑脚本以将 TARGET_DIR 变

    nabla 容器的测量和比较_shell_代码_相关文件_下载

    该脚本对我们在nabla-demo-appsruntest.bash存储库中提供的一个 Docker 容器执行测试 。目前这包括: node-express:一个 node.js express 应用程序 redis-test : 一个 redis 键/值服务器 python-tornado : Python ...

    git-sync:安全简单的一脚本git同步

    不同于无数的脚本来执行已经可用的脚本,它遵循KISS原则:安全,小巧,除了git和bash不需要任何东西,甚至不尝试使您免受git的攻击。 它是非交互式的,但是如果出现任何问题,将谨慎提示并提示错误退出。 它最终是...

    linux:与Linux相关的dotfile,脚本,注释

    公共仓库备份我Linux配置并跟踪我的学习进度。 目前持有我在bash和Linux上的综合笔记我已将有关vim的注释分离为 并将关于tmux的笔记转换为 剧本 包含我复制或编写的有趣的脚本。 该目录将导出到我的路径,以使它们可...

    Android-LogMailer:这是一个 bash 脚本,它从连接到机器的 android 设备获取系统日志,检查过去一小时内的错误,然后在找到错误时将带有错误的自动邮件发送到指定的邮件列表。 它被设计为每小时执行一次 cron 作业

    Android-LogMailer 这是一个 bash 脚本,它从... 环境中配置了电子邮件( ) 将脚本中的更改为您要将自动邮件发送到的电子邮件列表脚步: 下载脚本从脚本的同一路径执行以下(您可以将其复制到添加到路径环境变量的任何

    some-bash-scripts:一些bash脚本的集合

    它们很少是在学习bash脚本期间编写的基本材料。 一些bash脚本是必需的,但仍然是基本的东西,仅涉及一些内容。 所有脚本都在基于Ubuntu / Debian的发行版上进行了测试。 虽然基本功能不会受到影响,但您可能会得到...

    宋劲彬的嵌入式C语言一站式编程

    1. 单步执行和跟踪函数调用 2. 断点 3. 观察点 4. 段错误 11. 排序与查找 1. 算法的概念 2. 插入排序 3. 算法的时间复杂度分析 4. 归并排序 5. 线性查找 6. 折半查找 12. 栈与队列 1. 数据结构的概念 2. 堆栈 3. ...

    Vebugger:交互式 shell 调试器的前端

    Vebugger 目前支持: 在源代码中跟踪当前执行的命令调试器流程命令 - 步入、设置、设置和继续断点管理评估当前执行范围内的表达式弄乱程序的状态(改变值,调用函数) Vebugger 构建为用于为交互式 shell 调试器...

    Linux 101 hacks (2nd)

    技巧31:PS3——Shell 脚本中使用select 时的提示符 技巧32:PS4——PS4-―set -x"用来修改跟踪输出的前缀 技巧33:PROMPT_COMMAND 环境变量 第六章:用功能强大的彩色终端快速使用PS1 技巧34:在提示符中显示用户名...

Global site tag (gtag.js) - Google Analytics