- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息流 shell输入输出重定向 shell输入输出重定向 错误流重定向 管道线处理 管道线处理 管道线处理 2.15 Shell程序调试 2.15 Shell程序调试 2.15 Shell程序调试 在某些场合下,为了明确表示对shell变量的引用,可以用花括弧{}或者双引号将变量括起来,例如: $ echo ${UNIX} $ echo ${UNIX}Aaaaaa $ echo “$UNIX” is very good SYSTEM V SYSTEM VAaaaaa SYSTEM V is very good 2. Shell 编程 2.4 Shell的变量的定义、赋值与引用 清除变量unset 例: unset ux 转义字符“\” 例: echo $ux 例: echo \$ux 结果为:hello 结果为: $ux * 2. Shell 编程 2.5 Shell的变量中三种引号的作用 例:echo ‘$ux’ 结果为:$ux echo “$ux is `date`” 结果为:hello is wed Aug 16 16:20:12 echo `$ux` 结果为:报错,找不到$ux这个命令 name=`whoami` 结果为:john echo $name 单引号( ’ ’ ):屏蔽任意字符的特殊含义; 双引号( “ ”):屏蔽任意字符的特殊含义,除了$、 ’ ’、\; 反引号( ` `):(一般在键盘最左上角esc键下方)其间的命令可作为执行结果进行赋值,与( )的功能一样; * 同其他的编程语言如C,pascal一样,shell的变量也有局部变量和全局变量的区别。通常在一个shell程序中,通过形如var1=abc方式定义的都是局部变量,只能在该shell程序的进程中起作用,要定义全局变量,需要在局部变量定义之后使用export 命令来将这个变量声明为全局的: export $var1 以下面的例子var.sh,我们来说明全局变量和局部变量的区别和使用 $ var1=csu $ echo $var1 $ sh $ echo $var1 $ exit $ echo $var1 $ export $var1 $ sh $ echo $var1 ? 第一个echo显示的是 csu,这是通常的用法 第三行,调用sh进入一个新的shell进程 第四行的echo显示为空,因为var在这个进程中并没有进行定义 第五行,调用exit退出新建的shell回到原来shell的进程中 第六行的echo又能够正常显示了 第七行调用export,将var1定义为全局的,这样在新建的shell中,var1也能访问, 最后一行显示出csu 2.6 Shell中变量的作用域 2. Shell 编程 2.6 系统默认的内置变量 $# 传递到脚本的参数个数; $* 以一个单字符串显示所有向脚本传递的参数; $$ 脚本运行的当前进程ID号; $! 后台运行的最后一个进程的进程ID号; $@ 与$*相同,但是以多个字符串显示所有向脚本传递的参数,每个字符串为一个参数; $- 显示shell使用的当前选项,与set命令功能相同; $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误; * 2. Shell 编程 2.6 系统默认的内置变量 例: #!/bin/sh ################################################ # Name: var.sh # Usage: Test the reserved parameters # …… ################################################ echo There are $# parameters echo The parameters are $@ echo The Shell\’s PID is $$ echo Test finished! * 2. Shell 编程 2.7 测试文件状态 test condition [ condition ] “[”或“]”与条件“condition”之间必须有空格 测试内容: -d 目录 -s 文件非空 -f 正规文件 -w 可写 -L 符号链接 -u 文件有suid设置 -r 可读 -x 可执行 *
文档评论(0)