《学习bash》笔记--调试shell程序】的更多相关文章

在shell中,最简单的调试助手时输出语句echo,能够通过把很多echo语句放到代码中进行调试,但必须花费足够的时间以定位 要查看的信息.可能必须通过很多的输出才干发现要查找的信息. 1.set选项 最主要的时set -o命令选项,当执行脚本时,这些选项能够用在命令行上.例如以下表所看到的: set -o选项      命令行选项      行为 noexec            -n                     不执行命令,值检查语法错误 verbose           -…
我们也可以在Shell下调试Shell Script脚本,当然最简单的方法就是用echo输出查看变量取值了.Bash也提供了真正的调试方法,就是执行脚本的时候用-x参数. sh -x filename.sh 这会执行脚本并显示脚本中所有变量的取值,也可以使用参数-n,它并不执行脚本,只是返回所有的语法错误.…
Linux Shell 程序调试 Shell程序的调试是通过运行程序时加入相关调试选项或在脚本程序中加入相关语句,让shell程序在执行过程中显示出一些可供参考的“调试信息”.当然,用户也可以在shell程序中的适当位置加入一些echo命令用于调试与跟踪.   方法一:在运行脚本程序时加入调试选项: [用法]bash –选项 ./shellScript.sh 几个常用的调试选择项如下:         -e :如果一个命令返回一个非0退出状态值(失败),就退出.         -n : 不需要…
[root@localhost ~]# cat jiechen.sh #!/bin/bash #设计一个shell程序计算n的阶乘,要求: #.从命令行接收参数n; #.在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示. #.最后出计算的结果 num=$ &>/dev/null [ $? -ne ] && [ $# -ne ] && [ $num -le ] && s= $num` do s=$(($s*$i)…
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在: b. 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令): c. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计: d. 因为程序简单,编辑速度相当快速. v…
不看笔记,长时间不用自己都忘了,还是得经常看看笔记啊. 一个简单的shell程序 shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤 第一步:创建一个包含命令和控制结构的文件 第二步:修改这个文件的权限使它可以执行. 使用chmod u+x 第三步:执行shell sh /test/example.sh   Shell变量 变量:是shell传递数据的一种方法,用来代表每个取值的符号名 shell有两类变量:临时变量和永久变量 临时变量是…
编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令.首先,来编写第一个Shell程序,从中学习Shell程序的编写.修改权限.执行过程. 2.1 编辑Shell程序 编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下. [root@localhost bin]#vi d…
Bash技巧:使用 set 内置命令帮助调试 shell 脚本 霜鱼片发布于 2020-02-03   在 bash 中,可以使用 set 内置命令设置和查看 shell 的属性.这些属性会影响 shell 的不同行为.下面对一些常用的属性进行说明. set 命令 查看 help set 对 set 命令的说明如下: set: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]Change the value of shell att…
我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录时,提示符太长(如下图所示),操作起来就不太方便了. 我们可以自定义Linux系统终端提示符.Linux系统终端提示符的特征由系统环境变量PS1(是“prompt string one” 的简写)定义.通过命令echo $PS1查看当前设置.从上图可以看到我的Linux机器上该环境变量PS1的值.下…
bash中的变量动不动就说环境变量,真是奇怪,bash只是一个c语言编写的程序而已,跟环境变量有什么关系?如果知道dos的历史的话就知道有个时代是只有命令行界面而没有图形用户界面,这只小小的程序就包揽了所有你想要对操作系统进行的操作,你想要做任何事情也只能通过bash:但是当图形界面出来之后呢?bash中的环境变量在图形界面中并没有办法直接获取的,还是必须通过bash的命令来获取的,现在所谓的环境变量真是名不符实 Bash Shell 的操作环境: 配置值分为系统整体配置值与各人喜好配置值, 仅…
Shell 是什么 Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell既是一种命令语言,又是一种程序设计语言. Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell. 通常,大家所说的Shell是指Shell Script, 她是一种为shell编写的脚本程序. Shell 分类与开发环境 Shell…
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头. 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 有效的 Shell 变量名示例如下: RUNOOB LD_LIBRARY_PATH…
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell. Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 shell…
变量的赋值 变量的访问 变量的输入 4.1 变量的赋值     在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下: 变量名=值  注意: 等号(=)前后没有空格 例如: x=6 a="How are you " 表示把6赋值给变量x,字符串"How are you "赋值给变量a. 4.2 访问变量值 如果要访问变量值,可以在变量前面加一个美元符号"$",例如: [root@localhost…
位置参数 内部参数 如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数.Shell程序中的参数分为位置参数和内部参数等. 3.1 位置参数 由系统提供的参数称为位置参数.位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linux会把输入的命令字符串分段并给每段进行标号,标号从0开始.第0号为程序名字,从1开始就表示传递给程序的参数.如$0表示程序的名字,$1表示传递给程序的第一个参数,以此类推. 3.2 内部参数 上述过程中的$0是一个…
第十一章.认识与学习 BASH 最近升级日期:2009/08/25 1. 认识 BASH 这个 Shell 1.1 硬件.核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 shell 与 /etc/shells 功能 1.4 Bash shell 的功能 1.5 Bash shell 的内建命令: type 1.6 命令的下达 认识 BASH 这个 Shell 我们在第一章 Linux 是什么当中提到了: 管理整个计算机硬件的其实是操作系统的核心 (kernel),…
1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:自己编写NDK demo程序进行调试 2.前期准备 2.1  准备样本程序(假设已经配置好NDK环境) 新建目录mytest,在mytest新建目录jni,jni目录下有Android.mk配置文件和mytest.c源码文件 mytest.c: #include <stdio.h> int main(int argc, char *argv[]) { int i; ; i < ;…
Java程序中有逻辑错误,就需要使用JDB来进行调试了.调试程序在IDE中很方便了,比如这篇博客介绍了在Intellj IDEA中调试Java程序的方法. 我们课程内容推荐在Linux环境下学习,有同学问如何在命令行下调试Java程序,我们就要使用JDB了.在Ubuntu Bash中开三个tabs在命令行下学习Java编程也是一个很好的方法:一个使用vim编辑代码:一个使用javac, java(或ant, gradle...)编译运行代码:一个使用JDB调试代码. 如上图, 我们在Linux…
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. Shell是Linux下经典的文本互动方式,而Bash是现在最常用的一种Shell.我在这里总结了Bash的要点知识. Shell综述 Linux图形化桌面算不上精美.幸好,Linux提供了更好的与树莓派互动的方式:Shell.打开终端(Terminal),桌面上就会出现一个黑色背景的窗口,里面就运行着一个Shell.如果你敲击键盘,会发现字符会显示在$提示符的后面,形成一串文本形式的命令.所谓的She…
Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能: 它使你能监视你程序中变量的值. 它使你能设置断点以使程序在指定的代码行上停止执行. 它使你能一行行的执行你的代码. 在命令行上键入 gdb 并按回车键就可以运行 gdb 了, 如果一切正常的话, gdb 将被启动并且你将在屏幕上看到类似的内容: GDB is free software…
第十一章.认识与学习 BASH 1. 认识 BASH 这个 Shell 1.1 硬件.核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 shell 与 /etc/shells 功能 1.4 Bash shell 的功能 1.5 Bash shell 的内建命令: type 1.6 命令的下达 2. Shell 的变量功能 2.1 什么是变量? 2.2 变量的取用与配置:echo, 变量配置守则, unset 2.3 环境变量的功能: env 与常见环境变量说明, s…
学习目标编写Shell程序执行Shell程序 正文Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令.首先,来编写第一个Shell程序,从中学习Shell程序的编写.修改权限.执行过程. i.编辑Shell程序编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/home/study(练习专用目录,不存在自己新建一个)下…
用 GDB 调试程序 原著:Rick McMullin 用 gdb 调试 GCC 程序 转自:http://blog.csdn.net/bonnshore/article/details/7955422 Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能: 它使你能监视你程序中变量的值. 它使你能设置断点以使程序在指定的代码行上停止执行.…
此图反映了shell所在的位置与作用. 既然Shell与KDE和application等都是用户与Kernel的接口,那为什么还要学习呢?书中也给出了答案. 通用性,可以这样理解,也就是所谓的跨平台机制.这个跨平台非windows,linux这种跨平台,是跨套件管理模块. 简单快捷  远程的时候毕竟文字传输肯定比桌面联机操作要快得多. 装逼:右键 复制粘贴  跟ctrl+c/v跟在dos下进行处理.你懂得.是不是dos下处理会让人看起来更  我擦  一些. 所有的shell文件都存放在/etc/…
文章目录 认识与学习BASH① 认识BASH 壳程序 多种shells Bash shell 的功能 type :查询指令是否为Bash shell 的内置指令 指令的换行输入和快速删除 Shell的变量功能 什么是变量 echo,unset,变量设置规则 查看变量内容 设置变量 变量设置规则 环境变量的功能 set PS1 提示字符的设置 OSTYPE,HOSTTYPE,MACHTYPE export locale :影响显示结果的语系变量 认识与学习BASH① 认识BASH 壳程序 BASH…
shell程序介绍 1.查看我们的Linux(centos6.5为例)有多少我们可以使用的shell: [root@localhost bin]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh 系统某些服务在运作过程中,会去检查使用者能够使用的shells,而这些shell的查询就是由/etc/shells这个档案. 2.当我们登入Linux系统的时候,系统就会给我一个shell来工作,而…
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工作的一个小结,也是对自己知识的一个梳理,之前特别喜欢记在本子上,不过长期的不用,就会发现记在本子上很容易就忘,所以后面开始写博客.首先,它并不单单是对自己的一些技术心得的总结亦或是一些技术讨论,更重要的是对自己不断学习提高的一种要求和检验,一种技术沉淀.其次,通过技术博客我们可以彼此分享一些技术经验…
设计一个Shell程序,在/$HONE/test目录下建立50个目录,即user1-user50, 并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为: 读.写.执行:文件所有者所在组的权限为:读.执行. mkdir -p /home/www/ chmod chhh 编写shell程序,添加一个新组为class1,然后添加属于这个组的20个用户, 用户名的形式为stdxx,其中xx从01到20. 提示: groupadd class1 添加用户组 useradd $usernam…
下面是工作中用到的链接数据库的shell程序. #!/bin/bash ] ; then echo "prase is wrong ,please check first" exit fi#知识点: 1,$#代表了命令行的参数数量 2,-le表示小于等于,拓展 lt表示小于,gt表示大于,ge表示大于等于,eq表示等于,ne表示不等于 if [ "$1"x != "online"x ] && [ "$1"x !…
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们 所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时 就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,…