基础命令学习目录首页

  • 摘要:前言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最多接受两个参数,如果设置的参数多于两个,会提示错误。
参考:http://en.wikipedia.org/wiki/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

转载于:https://www.cnblogs.com/machangwei-8/p/9570202.html

basename命令详解相关推荐

  1. basename 命令 详解

      首先使用 --help 参数查看一下.basename命令参数很少,很容易掌握.   $ basename --help   用法示例:  $ basename /usr/bin/sort     ...

  2. 容器编排技术 -- Kubernetes kubectl create configmap 命令详解

    容器编排技术 -- Kubernetes kubectl create configmap 命令详解 1 kubectl  create configmap 2 语法 3 示例 4 Flags kub ...

  3. UNIX经典命令详解

    UNIX经典命令详解 第一章 目录及文件操作命令 1.1 ls [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]  [说明]: ls 命令列出指定目录下 ...

  4. updater-script命令详解教你写刷机脚本

    updater-script命令详解,刷机脚本怎么写,这些问题都也算是安卓的入门知识了,今天就和大家讲解一下,讲解人是深度论坛的Seeyou,如果你想学习更多ROM制作安卓开发方面的知识,欢迎加入深度 ...

  5. 【测试】linux FIO命令详解(一):磁盘IO测试工具 fio (并简要介绍iostat工具)

    目录 随看随用 FIO介绍 FIO 工具常用参数: fio工作参数可以写入配置文件 IO状态监控: Iostat介绍 与FIO相似的工具 fio测试脚本 提取iops和bw gunplot画图 Fio ...

  6. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  7. oracle home 命令,$ORACLE_HOMEbin目录下所有命令的使用方法及命令详解

    求$ORACLE_HOME/bin目录下所有命令的使用方法及命令详解 如题. $ORACLE_HOME/bin目录下有很多命令,那我们平时用到的也不是太多,即使用到的那部分可能用法也不是完全能掌握,所 ...

  8. 【FFmpeg】ffmpeg命令详解(三)高级选项

    ffmpeg命令详解(三)高级选项 1.-map 2.-ignore_unknown 3.-copy_unknown 4.-map_channel 5.-map_metadata 6.-map_cha ...

  9. 【FFmpeg】ffmpeg命令详解(二)

    ffmpeg命令详解(二) 4.流选择 4.1 自动选择流 4.2 手动选择流 5.命令行选择详解 5.1 命令行选项的值说明: 5.2 流说明符 5.3 通用选项 5.4 主选项 5.5 视频相关选 ...

最新文章

  1. python 解压缩 tar 包 或 tar.gz包
  2. 深入理解C++重载函数
  3. mongodb默认的用户名密码_MongoDB 设置账号和密码
  4. 高并发编程-Daemon Thread的创建以及使用场景分析
  5. Linq表达式、Lambda表达式你更喜欢哪个?
  6. SRS流媒体服务器——单机环境搭建和源码目录介绍
  7. 改变定时器获取传感器频度_称重传感器在高速定量分装系统的应用
  8. UC浏览器电脑版怎么自定义标签栏 标签栏位置修改教程
  9. zookeeper伪集群部署
  10. Entity Framework 学习中级篇2—存储过程(上)(转)
  11. java 的 provider_Java Provider.Service getProvider()用法及代码示例
  12. WPF MVVM设计模式的ViewModelBase和CommandBase代码
  13. IP组播之组播路由算法
  14. Q96:PT(3):基于噪声的纹理(Noise-Based Textures)(0)——概述
  15. (day 15 - 双指针)剑指 Offer 18. 删除链表的节点
  16. 电子设备的节能分析与设计
  17. win98万能显卡驱动_win98/98系统 u盘万能驱动
  18. 关于无线网络的静态ip与动态ip设置
  19. Python 中的 PIL 库
  20. Springboot+阿里云kafka踩坑实录

热门文章

  1. 深度报道 一个你所不知道的史玉柱
  2. 最快的 Houdini 和 V-Ray 云渲染服务
  3. 超级好看的ZYI官网单页html引导页网站源码
  4. 蓝桥杯真题——自动售水机
  5. 2019E0_G 生日宴会
  6. 十堰市人民小学一年级在计算机学校,2019年十堰市小学入学条件年满6岁及入学所需材料...
  7. html加js倒计时代码,分享最简单的JavaScript倒计时代码(附完整代码)
  8. 【RW007系列综合实战2】使用RW007模块连接小米蓝牙温湿度计2代
  9. RANSAC算法(附RANSAC直线拟合C++与Python版本)
  10. 程序员加班到深夜,隔天却被老板开除,调出监控后,网友:人渣