精华内容
下载资源
问答
  • 2021-12-19 16:48:27

    一、作用

    set -x 与 set +x命令的作用实际是用于输出详细日志,是Shell脚本中使用echo命令输出的替代方案。更适用于输出大量日志的场景使用
    set -x 是开启,set +x是关闭,set -o是查看 (xtrace,追踪一段代码的显示情况)

    二、用法

    # activate debugging from here
    set -x
    中间脚本逻辑
     # stop debugging from here
    set +x
    
    更多相关内容
  • ipset是linux kernel的一个功能,可以将ip等组合成一个ipset,在iptables中可以直接指定ipset。下面这篇文章主要给大家介绍了关于linux中ipset命令的使用方法,文中介绍的非常详细,需要的朋友们下面来一起学习学习...
  • 当指定某个单一的选项时将设置 shell 的常用特性,如果在选项后使用 -o 参数将打开特殊特性,若是 +o 将关闭相应的特殊特性。而不带任何参数的 set 指令将显示当前 shell 中的全部变量,且总是返回 true,除非遇到...
  • 经常用asp的同行,可能会建议用set rs=conn.execute(sql)来代替set rs=server.createobject(“ADODB.recordset”):rs.open conn,sql,1,1。还有一些同行更提出了用set rs=conn.execute(sql):res=rs.getRows(100)来...
  • Bash脚本教程之set命令

    千次阅读 2020-07-09 21:47:39
    set -u set -x Bash 的错误处理 set -e set -o pipefail 其他参数 set 命令总结 shopt 命令 set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本章介绍set的基本用法,帮助...

    目录

    简介

    set -u

    set -x

    Bash 的错误处理

    set -e

    set -o pipefail

    其他参数

    set 命令总结

    shopt 命令


    set命令是 Bash 脚本的重要环节,却常常被忽视,导致

    展开全文
  • Linux shell脚本内的set -x set +x set -e set -u set -n的应用 set命令可以定义脚本的运行方式,变量的获取方式,脚本的执行过程,脚本的测试。 1,set -u (检查脚本内的变量,如果有变量未被定义将终止脚本)...

                                            Linux shell脚本内的set -x set +x set -e set -u set -n的应用

    set命令可以定义脚本的运行方式,变量的获取方式,脚本的执行过程,脚本的测试。

    1,set -u (检查脚本内的变量,如果有变量未被定义将终止脚本)(脚本的自检测功能)

    #!/bin/bash
    set -u
    echo $A
    

    这是一个极为简单的shell脚本,功能为输出变量abc的值,但可以看到在脚本内并没有给定变量a的值,如果执行,将会报错。脚本名称为test.sh。执行后输出如下(也就是变量没有赋值):

    [root@centos7 ~]# bash test.sh 
    test.sh: line 3: A: unbound variable



    如果不使用set -u,那么脚本将会忽略错误,完整执行,并不会报错,也就是说默认是不检测变量是否赋值

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    echo $A
    [root@centos7 ~]# bash test.sh 
    
    [root@centos7 ~]# 
    

    2,set -e

    没有使用set -e的时候,脚本即使遇到错误也可以继续执行下去,例如:

    #!/bin/bash
    cat hello.sh
    echo "this is my script file"

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    cat hello.sh
    echo "this is my script file"
    [root@centos7 ~]# bash test.sh 
    cat: hello.sh: No such file or directory
    this is my script file
    

    很明显,我随便写了一个cat 文件,这个文件当然必定不存在的,第三行仍然执行了,如果是在编写其它的脚本时,希望脚本遇到返回值非零的情况,也就是错误就退出,那么,请在脚本的首行加 set -e,(可以认为这个是debug模式开启命令)。

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    set -e
    cat hello.sh
    echo "this is my script file"
    [root@centos7 ~]# bash test.sh 
    cat: hello.sh: No such file or directory
    

    可以看到,相当于打了一个debug断点,遇到错误就停止执行脚本了,那么不难想象,set -e 可以看做是安装类脚本的必备了。(如果前面的安装就有错误了,那么,后面的执行毫无意义,脚本需要十分强的健壮性)

    3,set -o pipefail

    检测脚本内的组合命令----管道命令的debug模式,也就是需要配合set -e先行开启debug模式,然后在单独针对管道命令检测shell脚本的健壮性

    如第二小节部分所示,现在脚本更改为如下,你认为会执行到最后吗?

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    set -e
    cat hello.sh |echo "second command is success!"
    echo "this is my script file"
    [root@centos7 ~]# bash test.sh 
    second command is success!
    cat: hello.sh: No such file or directory
    this is my script file
    

    可以看到,管道命令前面部分cat hello.sh是失败的,后面echo "second command is success!"是成功的,因为管道命令确实成功执行完了,因此,shell脚本认为第二行命令整体是成功的,返回值是0,第三行命令也就可以继续了,此时,即使有set -e也检测不到错误了,这肯定不是我们所希望的(脚本执行的内容并不准确了,对吧~~)



    在以上脚本内添加 set -o pipefail,脚本内容和执行结果如下:

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    set -e
    set -o pipefail
    cat hello.sh |echo "second command is success!"
    echo "this is my script file"
    [root@centos7 ~]# bash test.sh 
    second command is success!
    cat: hello.sh: No such file or directory

    可以看到,脚本到第二行就执行完毕,管道命令正确的部分仍然执行,但先于报错。

    4,set -x 和set +x 

    这两个为什么放到一起说呢?因为,这其实是一个显示脚本执行过程并将脚本内的变量的值暴露出来的一个开关,-x 是开,+x等于是默认的关闭,一般情况下,脚本是关闭这个显示过程的。

    [root@centos7 ~]# cat test.sh 
    #!/bin/bash
    set -e
    set -x
    set -o pipefail
    echo $PWD
    cat hello.sh |echo "second command is success!"
    echo "this is my script file"
    [root@centos7 ~]# bash test.sh 
    + set -o pipefail
    + echo /root
    /root
    + cat hello.sh
    + echo 'second command is success!'
    second command is success!
    cat: hello.sh: No such file or directory
    

    以上脚本,加了set -x 后,我们可以清晰的看到$PWD 这个变量的值了,对吗??执行后,并没有看到任何PWD,但我们知道,$PWD的值就是 /root ,如果现在删除掉set -x 这一行或者 改写成set +x,那么将不会看到脚本的执行过程啦。

    总结来啦:

    set -u 专门针对变量的模式,如果有未赋值定义的变量,通常对程序意味着冗余,无效,这不是我们所希望的事情。(如果,shell使用了大量的变量的话),或者,某个变量为空,而在脚本内rm -rf 变量,此时,set -u将会保护你,因为,如果为空,而又没有-u,rm -rf 命令将会删除一切,这个时候,你设置了set -u 可能会救你一命!!!

    set -e         debug断点模式,这个在脚本的流程控制中常常用到,比如,某一个脚本,不希望见到任何错误(返回值非零表示错误),因为这个错误对于脚本工作很重要,比如安装脚本,前面都错了,后面的行还在执行,有可能造成灾难性的后果,这将大大的提高脚本的健壮性。

    set -o pipefail 管道命令参与debug断点模式,shell默认会认为管道命令是一个整体,是与 | 的关系,set -o pipefail 更改为与或||,也就是管道命令参与。

    set -x 显示脚本执行过程,并显示脚本对变量的处理结果。如果,某一个脚本使用了大量的变量,而我们希望能看到这些变量的传递,使用是否正确,那么,set -x 将是你很好的选择。(快速定位问题,尤其是变量所产生的问题)

    综上,set -ue 和 set -o pipefail 可以保证shell脚本的健壮性!!!set -x 可以为你提供可视化的变量值检查。如果有危险命令,比如> 重定向,rm -rf 删除,这些,请尽量使用这些set。

    脚本内set -x  等于 脚本执行时, bash -x 脚本名或者 source -x 脚本名

    展开全文
  • 1.term命令:当和SPOOL命令联合使用时,可以取消SQLPLUS输出,查询结果仅仅存在于假脱机文件中settermon:查询结果既显示于假脱机文件...set colsep'|'; //-域输出分隔符SQL>set echo off; //显示start启动的脚...

    1.term命令:

    当和SPOOL命令联合使用时,可以取消SQLPLUS输出,查询结果仅仅存在于假脱机文件中

    set term on:查询结果既显示于假脱机文件中,又在SQLPLUS中显示;

    set term off:查询结果仅仅显示于假脱机文件中。

    2.其他命令:

    SQL>set colsep'|';    //-域输出分隔符

    SQL>set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on

    SQL> set echo on             //设置运行命令是是否显示语句

    SQL> set feedback on;       //设置显示“已选择XX行”

    SQL>set feedback off;     //回显本次sql命令处理的记录条数,缺省为on

    SQL>set heading off;   //输出域标题,缺省为on

    SQL>set pagesize 0;      //输出每页行数,缺省为24,为了避免分页,可设定为0。

    SQL>set linesize 80;     //输出一行字符个数,缺省为80

    SQL>set numwidth 12;     //输出number类型域长度,缺省为10

    SQL>set termout off;     //显示脚本中的命令的执行结果,缺省为on

    SQL>set trimout on;      //去除标准输出每行的拖尾空格,缺省为off

    SQL>set trimspool on;    //去除重定向(spool)输出每行的拖尾空格,缺省为off

    SQL>set serveroutput on; //设置允许显示输出类似dbms_output

    SQL> set timing on;           //设置显示“已用时间:XXXX”

    SQL> set autotrace on;      //设置允许对执行的sql进行分析

    set verify off                       //可以关闭和打开提示确认信息old 1和new 1的显示.

    http://blog.csdn.net/ziyifengfei/article/details/9964161

    这是在用sqlplus运行查询时的一些设置。

    set echo off; #控制start命令不列出命令文件中的每一命令

    set feedback off; #显示由查询返回的记录数 off等价为0

    set heading off; #报表中列标题不打印

    set pagesize off; #置 从顶部标题至页结束之间的行数

    set linesize off; #置一行中显示的字符总数

    set termout off; #由文件执行命令时不显示输出

    set trimout on; #每一显示行的末端去掉空格

    set trimspool on; #去掉spool输出时每行末端空格

    col eventtypeid format A10; #字段eventtypeid 输出时的格式设置为文字型,且占10个字符宽度,下面类似

    col eventtime format A10;

    col srcip format A16;

    col dstip format A16;

    col srcport format A10;

    col dstport format A16;

    spool d:/home/oracle/http.txt; #将下面开始的输出记录到这个文件

    select eventtypeid, eventtime,srcip, srcport, dstip, dstport , param from netids_eventlog t; #查询语句

    spool off; #输出记录结束

    http://zhidao.baidu.com/link?url=oPSpftBT_LAQnwDYSM7NgGRuli89oLWnPi6Yo9XtHidode00fEjpJWTST9qtS8ZFwlyuiBmRZBTZ9397KffMaq#

    展开全文
  • set函数(set函数的使用方法)

    千次阅读 2021-04-21 03:11:46
    我主要是想知道有哪些属性,分别表示什么MATLAB给每种对象的每个属性规定了一...set函数的调用格式.set(Swarmscope,'EraseMode','xor','MarkerSize',12); 最后一句的意思是什。help set ET(H,'PropertyName',Proper...
  • Shell 中set -e set -x set +e 的区别

    千次阅读 2021-01-04 23:02:17
    Linux 中set -e/set -x/set +e 的区别 #!/bin/bash set -e # 在shell脚本开头加上set -e,这句话告诉bash 如果任何语句的执行结果不是true, # 就直接退出shell脚本 shell 代码执行的返回值 取的上条命令的...
  • shell set 命令

    2021-01-07 15:47:47
    set2. set -u3. set -x4. bash 的错误处理5. set -e6. set -o pipefail 1. set 会显示所有的环境变量和 Shell 函数 $ cat script.sh set a=1 b=2 c=3 echo $a echo $b echo $c echo $d $ script.sh bash script....
  • shell脚本命令set

    千次阅读 2020-08-28 21:10:53
    set -e3. set -o pipefail4. set -u5. set -x6. 总结 1. 简介   在写shell的时候我们经常面临的问题就是shell遇到错误的时候不会停止,接着执行下面的shell命令的时候有时候是一种非预期的行为,可能会产生破坏性...
  • shell 中 set -x 和 set +x 语句的作用

    千次阅读 2021-03-02 17:43:12
    set -x 是开启 set +x是关闭 set -o是查看 (xtrace),set去追中一段代码的显示情况。 执行set -x后,对整个脚本有效。 [root@mybox bin]# ls -l /bin/bash + ls --color=tty -l /bin/bash -rwxr-xr-x 1 root ...
  • 常用set命令

    2020-12-23 16:44:22
    set timing off --设置显示“已用时间:XXXX”set autotrace on --设置允许对执行的sql进行分析,包含执行计划和统计信息set autotrace off --不生成autotrace 报告,这是缺省模式set autotrace on explain --...
  • linux命令之set x详解

    2021-05-16 13:52:14
    set是把它下面的命令打印到屏幕set -x 是开启 set +x是关闭 set -o是查看 (xtrace)。set -x 是显示脚本所有执行命令执行set -x后,对整个脚本有效。[root@mybox bin]# ls -l /bin/bashls --color=tty -l /bin/bash-...
  • Linux的set命令

    千次阅读 2019-07-24 13:05:23
    set命令主要用来设置shell,在编写shell脚本时,使用set命令能设置shell的执行方式,根据需求不同,采用的参数设置也不同。set命令也用来显示系统中已存在的shell变量以及设置新的shell变量。 2. set命令的常用参数...
  • mysql用户变量和set语句

    千次阅读 2021-01-18 23:25:28
    SET @var_name = expr [, @var_name = expr] ... 也可使用select语句来定义:SELECT @var_name := expr [, @var_name = expr] ... 用户变量:以"@"开始,形式为"@var_name",以区分用户变量及列名。它可以是任何随机...
  • iptables ipset详解

    千次阅读 2019-05-29 22:34:07
    iptables iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转] -t 表名 可以省略,指定规则存放在哪个表中,默认为filter表 用于...raw表: 关闭nat表上启用的连接追踪机制 命令选项 -A 在...
  • 可以看到屏保的时间是600秒,难怪dpms的值只对小于10分钟的时间有效 总结如下: 可以使用xset命令设置各项: xset s 300 #设置屏保时间为300秒,时间单位为秒 xset s 0 #关闭屏幕保护(设置为0也可以关闭xset s 0 0...
  • pd.set_option

    千次阅读 2021-03-17 17:00:28
    import warningsimport numpy as npimport pandas as pdwarnings.filterwarnings(‘ignore’) # 关闭运行时的警告np.set_printoptions(linewidth=100, suppress=True) # 打印numpy时设置显示宽度,并且不用科学计数...
  • 可以在管理员命令行下运行bcdedit /set hypervisorlaunchtype off之后重启来关闭Hyper-V。” 链接为:...
  • set define off关闭替代变量功能 在SQL*Plus中默认的"&"表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串...
  • shell之set 命令

    千次阅读 2019-10-25 17:00:24
    我们知道,Bash 执行脚本的时候,会创建一个新的 Shell。...set命令用来修改 Shell 环境的运行参数,也就是可以定制环境。一共有十几个参数可以定制,官方手册有完整清单,本文介绍其中最常用的四个。 1)...
  • Linux下修改: (1)关闭mysql服务 [plain] view plaincopy service mysql stop (2)修改 /etc/mysql/my.cnf (默认的安装路径) [plain] view plaincopy vim /etc/mysql/my.cnf 打开my.cnf后,在文件内的[mysqld...
  • 使用set更改shell特性时,符号"+"和"-"的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定义即可。使用:set(选项)(参数)例如:...
  • hive中常用的set设置

    2021-08-13 10:46:40
    set hive.execution.engine=spark; –打开动态分区后,允许所有分区都是动态分区模式 set hive.exec.dynamic.partition.mode = nonstrict; – 是否启动动态分区 set hive.exec.dynamic.partition=true; –小文件合并...
  • 文章目录1 结论2 演示3 详解3.1 prompt3.2 set feedback3.3 set define 1 结论 prompt : 提示信息,prompt 后面的内容原样输出 set feedback:反馈信息,每执行一条 sql 命令,Oracle 都会给一条反馈信息,如: ...
  • StreamSet 使用入门翻译——界面介绍

    千次阅读 2019-09-10 10:22:45
    StreamSet Data Collector(以下简称为StreamSet, 官网) 是一个轻量级,功能强大的设计和执行引擎,使用其可以完成路由和处理数据流中的数据。其采用管道任务的概念组织和定义一个个要完成的数据流处理任务,管道由...
  • set echo on 与set echo off

    千次阅读 2018-04-23 08:48:35
    在linux环境下运行SQL命令:set echo on;显示当前正在执行的语句set echo off;关闭显示当前正在执行的语句
  • set classpath用法记录

    千次阅读 2019-08-28 21:22:55
    set classpath用法记录1.set classpath(查看classpath路径)2.set classpath=3.set classpath=d:\test (test后不加分号)4.set classpath=d:\test; (test后加分号)set classpath=d:\test 和 set classpath=d:\test;...
  • vim 常用set命令汇总

    千次阅读 2021-06-10 22:27:35
    :set nonumber " 关闭行号 " 切换文件格式,ff是 fileformat 的缩写 :set ff=unix " 将文件切换为 unix 格式,每行以 "\n" 结尾 :set ff=dos " 切换为 Windows 格式,每行以 "\r\n" 结尾 :set ff? " ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,259,918
精华内容 503,967
关键字:

如何关闭set