Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20863
  • 博文数量: 7
  • 博客积分: 267
  • 博客等级: 入伍新兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 12:58
文章分类
文章存档

2012年(7)

我的朋友

分类: Python/Ruby

2012-04-10 20:12:29

1.1 shell跟踪选项

  set命令:执行起来简单,而且能提供大量逻辑处理和脚本内部变量值的细节。

  使用set命令其实就是使用shell选项来显示脚本运行时的冗余输出。

  set命令的一个功能就是打开和关闭shell之中的各种选项。在这种情况下,设置的选项是-x或xtrace,这样在运行脚本时,除了正常的输出外,还会显示代码运行前每一行代码的扩展命令和变量。

  如果脚本文件中加入命令"set -x"(xtrace),那么set命令之后执行的每一条命令以及加在命令行中的任何参数(包括变量和变量的值)都会显示出来。每一行之前都会加上加号(+),提示它是跟踪输出的标识。在子shell中执行的shell跟踪命令会加两个加号(++)。

例:

  #!/bin/sh

  set -x

  echo -n "Can you write device drivers?"

  read answer

  answer=`echo $answer|tr [a-z] [A-Z]`

  if [ $answer = Y ]

  then

    echo "Wow, you must be very skilled"

  else

    echo "Neither can I, I'm just an example shell script"

  fi

输出结果:

clip_image001

  shell的一些选项可以引发这个输出结果的稍许变动。如shell的-v选项可以打开冗余模式,和将脚本代码输出到标准错误文件stderr中。即改为“set -v”。

  对于shell脚本,执行每一行代码和脚本的其他输出都会被发送到stderr中。


打开和关闭:

  关闭和打开选项的句法是相反的。

  如"-x"来打开xtrace选项,则"+x"来关闭xtrace选项。

  这样就可以从某个点关闭选项,在只需要调试一小段代码时非常有用。

阅读(1039) | 评论(5) | 转发(0) |
给主人留下些什么吧!~~

小豆熊2012-04-15 21:03:10

shellcode解密怎么搞?楼主能吗

1471893852012-04-14 00:00:17

如果脚本文件中加入命令"set -x"(xtrace),那么set命令之后执行的每一条命令以及加在命令行中的任何参数(包括变量和变量的值)都会显示出来。  
多谢了

夏冰软件2012-04-13 17:06:50

写的不错,支持一下

3783335812012-04-12 11:08:04

脚本中让用户输入ip地址和子网掩码之后,自动换/etc/sysconfig/network-scripts/ifcfg-eth0中的ip地址和子网掩码,代码实现怎么写?

认真的鱼1232012-04-11 17:27:17

Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。值得研究啊~~