Linux与Unix Shell编程:环境变量与脚本通信

需积分: 3 3 下载量 35 浏览量 更新于2024-09-20 收藏 509KB PDF 举报
"LINUX与UNIX SHELL编程指南第14章主要讲解了shell编程中的环境和shell变量的使用,包括本地变量、环境变量、变量替换、导出变量、特定变量,以及如何向脚本传递信息和在系统命令行中使用位置参数。章节通过实例解释了变量在定制用户工作环境、保存信息以及临时存储数据中的作用,如定义默认编辑器(EDITOR)和数据库服务器名称(DSQUERY)等。此外,还提到了使用花括号来避免shell对变量值的误解。" 在LINUX与UNIX系统中,shell变量是用户自定义的存储单元,它们可以保存各种类型的数据,如路径、文件名或数值,都被视为文本字符串。shell变量分为本地变量和环境变量。本地变量仅在当前shell会话或脚本中有效,一旦shell关闭或退出,这些变量的值就丢失。例如,可以定义一个名为`file-name`的本地变量,存储文件`loop.doc`的路径,但这个值不会影响其他shell进程。 环境变量则是全局的,可以被子进程继承。例如,`EDITOR`就是一个常见的环境变量,用于指定系统默认的文本编辑器。当其他程序(如cron任务)需要编辑文件时,会使用这个变量的值作为编辑器。同样,`DSQUERY`可以用来存储数据库服务器的名称,使得在不指定服务器名的情况下,应用能够通过该变量自动找到服务器。 变量替换指的是shell提供的字符串操作,如使用通配符、引用、替换等来处理变量的值。例如,可以使用`$()`或`` ` ``来执行命令替换,将命令的输出赋值给变量。导出变量(export命令)将本地变量转换为环境变量,使得子进程可以访问。特定变量则是一些预定义的shell变量,如`$0`表示脚本的名称,`$#`表示传给脚本的参数个数。 向脚本传递信息通常通过命令行参数完成,位置参数(如 `$1`, `$2` 等)代表脚本接收的按顺序排列的参数。在系统命令行下,可以直接使用这些位置参数,无需显式声明。 在编写shell脚本时,为了确保变量被正确解析,可以使用花括号 `{}` 将变量名包裹起来,如 `${file-name}`,这可以避免shell将变量值误解析为命令的一部分。理解和熟练运用shell变量是进行shell编程的关键,它极大地增强了shell脚本的灵活性和功能性。