Bourne Shell及shell编程 4
来源:百度文库 编辑:神马文学网 时间:2024/06/03 15:05:19
4. Shell的定制 通常使用shell的定制来控制用户自己的环境比如改变shell的外观(提
示符)以及增强 自己的命令 (1)通常环境变量来定制shell 通常改变环境变量可以定制shell的工作环境shell在处理信息时会参
考这些环境变量 改变环境变量的值在一定程度上改变shell的操作方式比如改变命令
行提示符 .使用IFS增加命令行分隔符 默认状态下shell的分隔符为空格制表符及换行符但可以通过改变
IFS的值加入自 己 的分隔符如下所示 $ IFS=":" $ echo:Hello:my:Friend Hello my Friend (2)加入自己的命令及函数 如下程序 #Directory and Prompt change program #Syntax: chdir directory if [ ! -d "$1" ] then echo "$1 is not a directory" exit 1 fi cd $1 PS1=`pwd`$ export PS1 $ chdir /usr/home/teresa $
但此程序在执行时系统提示符并不会改变因为此程序是在子shell中执
行的因此其变 量 对当前shell并无影响要想对当前shell起作用最好是将此作为函数写在
自己的.profile 中 或建立自己的个人函数文件.persfuncs #Personal function file persfuncs chdir() { #Directory and Prompt change program #Syntax: chdir directory if [ ! -d "$1" ] then echo "$1 is not a directory" exit 1 fi cd $1 PS1=`pwd`$ export PS1; } 再执行 $ . .persfuncs $ chdir temp /home/hbbwork/temp$ 也可在自己的.profile文件中用 . .persfuncs调用.persfuncs. 说明在bash/tcsh中已经使用别名相对而言别名比此方法更为方便
5. 有关shell的专门讨论 (1)shell程序的调试 切记程序员人总是会犯错误的而计算机是不会错的 使用-x进行跟踪执行执行并显示每一条指令 (2)命令组
用小括号将一组命令括起来则这些命令会由子shell来完成而{command_list;}则在 当 前shell中执行这两者的主要区别在于其对shell变量的影响子shell执行的命令不会 影响当前shell中的变量 $ NUMBER=2 $ (A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER) 4 $ echo $NUMBER 2 $ { A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER; } 4 $ echo $NUMBER 4 总结 在本章中讲述了Bourne Shell的基本知识,使用shell变量shell script
基础这些概 念 对于理解学习Korn Shell, csh以及其他script编程都是非常有用的 很多OS都有不少语言及一些script功能但很少有象UNIX SHELL这
样灵活强大的script 脚 本语言能力 对于系统管理员或程序员来说熟练地使用shell script将对日常工作(系
统维护及管理 ) 非常有用如果你想作一个合格的系统管理员强烈建议你进一步深入
的了解和使用 shell. 另外对于系统管理员来说PERL也是一个必不可少的script编程语
言尤其是对于处 理 文本格式的各种文件PERL具有shell, awk, sed, grep等的功能但
使用起来更为灵活 功能也更强大大家可以参考Perl By Examples"来学习和使用PERL 完
示符)以及增强 自己的命令 (1)通常环境变量来定制shell 通常改变环境变量可以定制shell的工作环境shell在处理信息时会参
考这些环境变量 改变环境变量的值在一定程度上改变shell的操作方式比如改变命令
行提示符 .使用IFS增加命令行分隔符 默认状态下shell的分隔符为空格制表符及换行符但可以通过改变
IFS的值加入自 己 的分隔符如下所示 $ IFS=":" $ echo:Hello:my:Friend Hello my Friend (2)加入自己的命令及函数 如下程序 #Directory and Prompt change program #Syntax: chdir directory if [ ! -d "$1" ] then echo "$1 is not a directory" exit 1 fi cd $1 PS1=`pwd`$ export PS1 $ chdir /usr/home/teresa $
但此程序在执行时系统提示符并不会改变因为此程序是在子shell中执
行的因此其变 量 对当前shell并无影响要想对当前shell起作用最好是将此作为函数写在
自己的.profile 中 或建立自己的个人函数文件.persfuncs #Personal function file persfuncs chdir() { #Directory and Prompt change program #Syntax: chdir directory if [ ! -d "$1" ] then echo "$1 is not a directory" exit 1 fi cd $1 PS1=`pwd`$ export PS1; } 再执行 $ . .persfuncs $ chdir temp /home/hbbwork/temp$ 也可在自己的.profile文件中用 . .persfuncs调用.persfuncs. 说明在bash/tcsh中已经使用别名相对而言别名比此方法更为方便
5. 有关shell的专门讨论 (1)shell程序的调试 切记程序员人总是会犯错误的而计算机是不会错的 使用-x进行跟踪执行执行并显示每一条指令 (2)命令组
用小括号将一组命令括起来则这些命令会由子shell来完成而{command_list;}则在 当 前shell中执行这两者的主要区别在于其对shell变量的影响子shell执行的命令不会 影响当前shell中的变量 $ NUMBER=2 $ (A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER) 4 $ echo $NUMBER 2 $ { A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER; } 4 $ echo $NUMBER 4 总结 在本章中讲述了Bourne Shell的基本知识,使用shell变量shell script
基础这些概 念 对于理解学习Korn Shell, csh以及其他script编程都是非常有用的 很多OS都有不少语言及一些script功能但很少有象UNIX SHELL这
样灵活强大的script 脚 本语言能力 对于系统管理员或程序员来说熟练地使用shell script将对日常工作(系
统维护及管理 ) 非常有用如果你想作一个合格的系统管理员强烈建议你进一步深入
的了解和使用 shell. 另外对于系统管理员来说PERL也是一个必不可少的script编程语
言尤其是对于处 理 文本格式的各种文件PERL具有shell, awk, sed, grep等的功能但
使用起来更为灵活 功能也更强大大家可以参考Perl By Examples"来学习和使用PERL 完
Bourne Shell及shell编程 4
Bourne Shell及shell编程 1
Bourne Shell及shell编程 2
Shell编程资源
Shell编程基础 - Ubuntu中文
Shell、脚本、编程和编译 1
Eclipse编程之旅:Shell入门
shell编程范例之字符串操作 - wuye_chinaunix
Linux Shell
shell 1
Shell 知识点
shell命令
Shell Script
shell diff
Linux Shell常用shell命令
IBM-awk学习资料[一] - shell编程 - Linuxer William_zx...
CSDN技术中心 Linux Shell编程学习笔记
【Linux Shell简介】
快速编辑 Shell 命令行
Shell Script初體驗
Shell 設計入門 -- 臥龍小三
SHELL 十三问
Shell 条件判断总结
shell常见知识