Chinaunix首页 | 论坛 | 博客
  • 博客访问: 222076
  • 博文数量: 88
  • 博客积分: 3020
  • 博客等级: 中校
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-12 16:56
文章分类
文章存档

2010年(26)

2009年(62)

我的朋友

分类: LINUX

2010-10-08 15:45:46

basename
从文件名中去掉路径信息, 只打印出文件名. 结构 basename $0 可以让脚本知道它自己的名字, 也就是, 它被调用的名字. 可以用来显示用法信息, 比如如果你调用脚本的时候缺少参数, 可以使用如下语句:
echo "Usage: `basename $0` arg1 arg2 ... argn"

dirname
从带路径的文件名中去掉文件名, 只打印出路径信息.

basename 和 dirname 可以操作任意字符串. 参数可以不是一个真正存在的文件, 甚至可以不是一个文件名

export命令
可以将一个局部变量提供给Shell执行的其他命令使用,其格式为: export 变量名
也可以在给变量赋值的同时使用export命令: export 变量名=变量值
使用export说明的变量,在Shell以后运行的所有命令或程序中都可以访问到。

PWD
当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化


bn=`basename $0`
echo $bn
echo $0
echo ${bn##*/}

dn=`dirname $PWD`
echo $PWD
echo $dn
echo ${dn%/*}

#在 bash 中的变量调用处理中,
#${var#pattern} 是要将变量值左边的最短pattern 拿掉。
#${var##pattern} 是要将变量值左边的最长pattern 拿掉。
#因此,${var##*/} 就是将最后一个/ 及其左边的内容拿掉。

#${var%pattern} 是要将变量值右边的最短pattern 拿掉。
#${var%%pattern} 是要将变量值右边的最长pattern 拿掉。
#因此,${var%/*} 就是将最后一个/ 及其右边的内容拿掉。

#来玩个实验好了:
#当FNAME="/home/kenny/tmp/test.1.sh" 的时候﹕
#${FNAME} 显示变数值的全部。 /home/kenny/tmp/test.1.sh

#${FNAME##/*/} 比对变数值开端﹐如果以/*/ 开头的话﹐砍掉最长的部份。 test.1.sh

#${FNAME#/*/} 比对变数值开端﹐如果以/*/ 开头的话﹐砍掉最短的部份。 kenny/tmp/test.1.sh

#${FNAME%.*} 比对变数值末端﹐如果以.* 结尾的话﹐砍掉最短的部份。 /home/kenny/tmp/test.1

#${FNAME%%.*} 比对变数值末端﹐如果以.* 结尾的话﹐砍掉最长的部份。 /home/kenny/tmp/test

#${FNAME/sh/bash} 如果在变数值中找到sh 的话﹐将第一个sh 换成bash。 /home/kenny/tmp/test.1.bash

#${FNAME//sh/bash} 如果在变数值中找到sh 的话﹐将全部sh 换成bash。 /home/kenny/tmp/test.1.bash
阅读(1642) | 评论(1) | 转发(0) |
0

上一篇:如何管理Oracle用户权限表

下一篇:LWP

给主人留下些什么吧!~~

chinaunix网友2010-10-10 19:29:10

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com