如何在unix shell脚本中解析出路径的结尾?

cof*_*fee 2 unix linux shell

我有一个.sh unix shell脚本,它接收一个路径作为参数/home/test/user1.所以,在变量中${1},这就是参数.

我想创建一个名称基于该路径的最后一部分user1的文件.如何解析该路径以检索最后一段路径?

Jac*_*cob 12

我想你正在寻找basename命令.

$ basename /home/test/user1
user1
Run Code Online (Sandbox Code Playgroud)

编辑:(回复您的评论)

在shell脚本变量中,您需要反引号:

END_OF_PATH=`basename "${1}"`
Run Code Online (Sandbox Code Playgroud)

  • @coffee:错误的报价类型.使用反引号`\``,而不是单引号`'`.复制并粘贴答案.您也可以使用相同的`$(basename"$ {1}")`. (2认同)
  • 为了完整起见:`dirname`是basename的'dual',它会删除文件,并只保留提供的文件路径的目录路径.非常有用,而且比烹饪你自己的正则表达式更健壮. (2认同)