基础命令学习目录首页

    • 摘要:前言bashname命令用于获取路径中的文件名或路径名(获取的时候叶子节点的元素内容)常见用法举例basenamepath获取末尾的文件名或路径名1:[aliyunzixun@xxx.comlianxi]#basename/etc/passwd2:passwd3:[aliyunzixun@xxx.comlianxi]#basename/etc/man.config4:man.config5:[aliyunzixun@xxx.comlianxi]#basename/etc/6:
    • 前言

      bashname命令用于获取路径中的文件名或路径名(获取的时候叶子节点的元素内容)

      常见用法举例

      basename path

      获取末尾的文件名或路径名

         1: [aliyunzixun@xxx.com lianxi]# basename /etc/passwd
         2: passwd
         3: [aliyunzixun@xxx.com lianxi]# basename /etc/man.config
         4: man.config
         5: [aliyunzixun@xxx.com lianxi]# basename /etc/
         6: etc
      去掉末尾的指定字符

      如果我们不需要扩展名或是末尾的子字符串的时候,第二个参数指定其即可取消。

       取消扩展名
         1: [aliyunzixun@xxx.com lianxi]# basename /etc/man.config
         2: man.config
         3: [aliyunzixun@xxx.com lianxi]# basename /etc/man.config .config
         4: man
      

      取消指定的字符

      如下,要取消db.data,包括了扩展名在内

         1: [aliyunzixun@xxx.com lianxi]# ls namedb.data
         2: namedb.data
         3: [aliyunzixun@xxx.com lianxi]# basename namedb.data db.data
         4: name
      

      总结

      通过basename来获取末尾的文件名或目录名

    • 以上是

linux命令详解:basename命令

      的内容,更多

Linux叶子元素

      的内容,请您使用右上方搜索功能获取相关信息。
首先使用 --help 参数查看一下。basename命令参数很少,很容易掌握。
 
 
 
 
  1. $ 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去掉。
示例:
 
 
  1. $ basename /tmp/test/file.txt
  2. file.txt
  3. $ basename /tmp/test/file.txt .txt
  4. file
 
注意点:
1、如果像下面脚本中传递参数给basename,参数为空,basename会将参数左移
2、basename最多接受两个参数,如果设置的参数多于两个,会提示错误。
 
 
以下是一个简单的脚本,测试了一下basename:
  1. #!/bin/bash
  2. # basename.sh
  3. echo Testing basename
  4. echo -------------
  5. echo "basename \$1/\$2 .txt; suffix is .txt"
  6. filename=`basename $1/$2 .txt`
  7. echo $filename
  8. echo -------------
  9. echo "basename ab.c .c; suffix is .c"
  10. basename ab.c .c
  11. echo "basename ab b; suffix is b"
  12. basename ab b
  13. echo -------------
  14. echo Testing \$\@ and \$\#
  15. echo Output \$\@
  16. echo $@
  17. echo Output \$\#
  18. echo $#
  19. # end of basename.sh
脚本运行结果:
 
  1. 没有参数传递的情况:
  2. $./basename.sh
  3. Testing basename
  4. -------------
  5. basename $1/$2 .txt; suffix is .txt
  6. /
  7. -------------
  8. basename ab.c .c; suffix is .c
  9. ab
  10. basename ab b; suffix is b
  11. a
  12. Testing $@ and $#
  13. -------------
  14. Output $@
  15. Output $#
  16. 0
  17. 传递参数的情况:
  18. $ ./basename.sh 1.txt 2.txt
  19. Testing basename
  20. ------------
  21. basename $1 .txt; suffix is .txt
  22. 1
  23. -------------
  24. basename ab.c .c; suffix is .c
  25. ab
  26. basename ab b; suffix is b
  27. a
  28. Testing $@ and $#
  29. -------------
  30. Output $@
  31. 1.txt 2.txt
  32. Output $#
  33. 2
 
 
额外补充:
1、$@
$@ 为传递的参数
2、$#
$# 为传递参数的数量
 
就像脚本执行后的结果:
 
 
  1. Testing $@ and $#
  2. -------------
  3. Output $@
  4. 1.txt 2.txt
  5. Output $#
  6. 2
3、$? 
    是shell变量,表示"最后一次执行命令"的退出状态,一般0表示成功,非0数值表示没有成功。
 
切记:
$?永远表示shell命令最后一次执行后的退出状态,当函数执行完毕后,如果又执行了其它命令,则$?不再表示函数执行后的状态,而表示其它命令的退出状态. 
4、$!
    代表pid,进程id
 
5、$$
    代表ppid,父进程id
 
  1. $ ./skype &
  2. [2] 13549
  3. $ echo $!
  4. 13549
  5. $ echo $$
  6. 13032
  7. $ ps -ef | grep skype
  8. luck 13549 13032 4 19:19 pts/0 00:00:00 skype

原文链接:https://blog.csdn.net/wutao_water/article/details/39478631

basename命令详解的更多相关文章

  1. (转)Linux: dirname、basename命令详解

    Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...

  2. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(一) RTMP 命令详解

    源码地址:https://github.com/Tinywan/PHP_Experience 说明: rtmp的延迟主要取决于播放器设置,但流式传输软件,流的比特率和网络速度(以及响应时间“ping” ...

  3. 转 linux之sed命令详解

    http://jingyan.baidu.com/article/fec4bce2228f60f2618d8bb0.html sed  编辑裁剪文件命令 sed -i "s/\/db\/te ...

  4. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  5. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  6. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  7. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  8. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  9. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

随机推荐

  1. [Java123]Gradle

    https://dzone.com/articles/gradle-vs-maven https://docs.gradle.org/current/userguide/what_is_gradle. ...

  2. Python自动化之logging模块

    Logging模块构成 主要分为四个部分: Loggers:提供应用程序直接使用的接口 Handlers:将Loggers产生的日志传到指定位置 Filters:对输出日志进行过滤 Formatter ...

  3. PAT乙级1030

    1030 完美数列 (25 分)   给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择 ...

  4. jmeter报错之“请在微信客户端打开链接”

    这是一个还没解决的问题,这里纯粹记录自己思考的过程,后续给自己参考. 先说明情景:对微信公众号的一个接口进行调用跑通,后续可能需要压测(是的,仅仅是调通一个接口而已o(╥﹏╥)o) 1.按照我理解的正 ...

  5. 1347: Last Digit (周期函数)

    1347: Last Digit Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: ...

  6. ORP计

    ORP计 ORP计通过测量铂或金电极与参比电极之间的电位差,转换成氧化还原电位信号.氧化还原电位测量用电极可与转换放大器组合,转换放大器部分与pH测量用相同.ORP计可用于排水处理(氰基处理.铬酸处理 ...

  7. php对接网易云信视频直播

    <?php/** * Created by PhpStorm. * User: lhl * Date: 2019/4/10 * Time: 17:31 */ namespace app\api\ ...

  8. PHP分行打印数组-php输出数组方法大全

    我们都知道php有两种方式可以打印数组 $arr = array( "a"=>"orange", "b"=>"bana ...

  9. 一个C语言内存管理模块的实现

    C 内存管理模块的编写 C语言手动管理内存很困难,有时候很难发现内存泄漏,这两天看了一下里面有写了一个简单的内存管理模块,发现挺精巧,可以有效检测内存泄漏 原理很简单,就是把C的malloc函数分配的 ...

  10. EntityFramework使用动态Lambda表达式筛选数据

    public static class PredicateBuilder { public static Expression<Func<T, bool>> True<T ...