linux basename命令学习

linux basename命令学习

本文引自:SQL吧|企业网站源码下载(www.sql8.net) 原文参考:http://www.sql8.net/a/course/caozuoxitong/liunx/2014/0820/30542.html

首先使用 --help 参数查看一下。basename命令参数很少,很容易掌握。


$ basename --help


用法示例:
$ basename /usr/bin/sort 输出"sort"。
$ basename ./include/stdio.h .h 输出"stdio"。


为basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来。


basename命令格式:
basename [pathname] [suffix]
basename [string] [suffix]


suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
示例:


$ basename /tmp/test/file.txt
file.txt
$ basename /tmp/test/file.txt .txt
file


注意点:
1、如果像下面脚本中传递参数给basename,参数为空,basename会将参数左移
2、basename最多接受两个参数,如果设置的参数多于两个,会提示错误。


参考:http://en.wikipedia.org/wiki/Basename


以下是一个简单的脚本,测试了一下basename:
#!/bin/bash
# basename.sh
echo Testing basename
echo -------------
echo "basename \$1/\$2 .txt; suffix is .txt"
filename=`basename $1/$2 .txt`
echo $filename
echo -------------
echo "basename ab.c .c; suffix is .c"
basename ab.c .c
echo "basename ab b; suffix is b" 
basename ab b
echo -------------
echo Testing \$\@ and \$\#
echo Output \$\@
echo $@
echo Output \$\#
echo $#
# end of basename.sh
脚本运行结果:


没有参数传递的情况:


$./basename.sh
Testing basename
-------------
basename $1/$2 .txt; suffix is .txt
/
-------------
basename ab.c .c; suffix is .c
ab
basename ab b; suffix is b
a
Testing $@ and $#
-------------
Output $@


Output $#
0


传递参数的情况:


$ ./basename.sh 1.txt 2.txt
Testing basename
------------
basename $1 .txt; suffix is .txt
1
-------------
basename ab.c .c; suffix is .c
ab
basename ab b; suffix is b
a
Testing $@ and $#
-------------
Output $@
1.txt 2.txt
Output $#
2




额外补充:
1、$@
$@ 为传递的参数
2、$#
$# 为传递参数的数量


就像脚本执行后的结果:


Testing $@ and $#
-------------
Output $@
1.txt 2.txt
Output $#
2
3、$? 
是shell变量,表示"最后一次执行命令"的退出状态,一般0表示成功,非0数值表示没有成功。


切记:
$?永远表示shell命令最后一次执行后的退出状态,当函数执行完毕后,如果又执行了其它命令,则$?不再表示函数执行后的状态,而表示其它命令的退出状态. 
4、$!
代表pid,进程id


5、$$
代表ppid,父进程id


$ ./skype &
[2] 13549
$ echo $!
13549
$ echo $$
13032
$ ps -ef | grep skype
luck 13549 13032 4 19:19 pts/0 00:00:00 skype


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值