• basename命令详解


    基础命令学习目录首页

      • 摘要:前言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

  • 相关阅读:
    archlinux 怎么样安装KDE界面
    选择Arch Linux还是Gentoo Linux?
    服务器用什么Linux系统较好?
    轻型简易的Linux桌面环境推荐
    扩大VMware虚拟机中linux硬盘空间
    archbang 硬盘安装
    持续改进中, Gnome Shell 2.91.3 发布
    群英战吕布 2010年十大Linux PK WIN7
    将LFSliveCD安装到硬盘的注意事项
    ArchLinux安装笔记(续)(桌面篇)
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/9570202.html
Copyright © 2020-2023  润新知