LinuxShell常用技巧(十一).docx
文本预览下载声明
Linux Shell常用技巧(十一)Posted on 2011-12-15 00:05 Stephen_Liu阅读(3035) 评论(0) 编辑收藏二十二. 交互式使用Bash Shell:??? 1.? 用set命令设置bash的选项:?? ?下面为set主要选项的列表及其表述:选项名开关缩写描述allexport-a打开此开关,所有变量都自动输出给子Shell。noclobber-C防止重定向时文件被覆盖。noglob-d在路径和文件名中,关闭通配符。?? ?#打开该选项??? / set -o allexport?? #等同于set -a?? ?#关闭该选项??? / set +o allexport? #等同于set +a?? ?#列出当前所有选项的当前值。??? / set -o??? allexport???????? off?? ?braceexpand?? on?? ?emacs???????????? on?? ?errexit??????????? off?? ?errtrace????????? off?? ?functrace??????? off?? ?hashall??????????? on?? ?histexpand????? on?? ?... ...??? / set -o noclobber???? #打开noclobber选项,防止在重定向时原有文件被覆盖。??? / date outfile?? ??? ? #通过date命令先生成一个文件outfile。??? / ls outfile?? ??? ??? ? #将ls命令的输出重定向到该文件outfile,shell将提示不能覆盖已经存在的文件。??? -bash: outfile: cannot overwrite existing file??? / set +o noclobber??? #关闭noclobber选项。??? / ls outfile?? ??? ??? ? #重新将ls的输出重定向到outfile,成功。??? 2.? 变量:??? 设置局部变量:??? / name=stephenliu? #注意等号两边不要有空格,如果变量值之间存在空格,则需要用双引号括起??? / echo $name?? ?stephenliu??? / name=?? ??? ??? ??? ???? #将变量设置为空时,等号后面也不要有空格,直接回车即可。??? / echo $name???????????? #name变量为空,因此echo不会有任何输出。??? 注意:以上变量的声明方式均可替换为declare variable=value的形式。??? / declare name=stephenliu??? / readonly name?? ??? ? #将name变量设置为只读。??? / echo $name?? ?stephenliu??? / name=my wife????? #如果针对只读变量重新赋值,将报错,提示name是只读变量。??? -bash: name: readonly variable??? / unset name?? ??? ??? ? #如果unset只读变量,将同样报错,提示不能unset只读变量。??? -bash: unset: name: cannot unset: readonly variable??? 设置全局/环境变量:?? ?在当前Shell中创建的全局/环境变量可以直接传递给它所有的子Shell,当前创建环境变量的Shell被称为夫Shell。??? / export allname=john???????? #利用export命令,将其后声明的变量置为环境变量??? / bash??????????????????????????????? #启动一个新的子Shell??? / echo $allname????????????????? #在子Shell中echo变量$allname,发现夫Shell中设置的值被传递到子Shell?? ?john??? / declare -x allname2=peter #这里的功能和结果都是和上面的命令相同,只是利用declare -x命令设置环境变量??? / bash??? / echo $allname2?? ?peter?? ?下面的列表将给出常用的内置Shell环境变量:变量名含义BASH表示bash命令的完整路径名。ENV在启动新bash shell时执行的环境文件名。HOME主目录。LANG本地化语言。PATH命令搜索路径,彼此之间冒号分隔。PPID父进程PID。PWD当前工作目录,用cd命令设置。?
显示全部