带有前导 -(破折号)的文件的基本名称
basename of file with a leading - (dash)
我对 zsh 脚本中的基本名称有疑问。想象一下 $directory 包含一个带有前导破折号的文件名,在我的例子中它是“-Fast-”。然后脚本执行
folder=$(basename "$directory")
或者如果我尝试
的其他语法
folder=`basename "$directory"`
两者都会导致相同的错误:
basename: 非法选项 -- F
用法:基本名称字符串[后缀]
基本名称 [-a] [-s 后缀] 字符串 [...]
除了不使用带前导破折号的文件(这可能很难向普通用户解释),我该怎么办?
谢谢!
在大多数命令中,您可以使用双破折号 --
来表示“参数结束”。
folder=`basename -- "$directory"`
如何完全避免 basename
而只做
folder=$directory:t
顺便说一句,如果你想要等同于 dirname
(即目录部分),它将是 $directory:h
。
我对 zsh 脚本中的基本名称有疑问。想象一下 $directory 包含一个带有前导破折号的文件名,在我的例子中它是“-Fast-”。然后脚本执行
folder=$(basename "$directory")
或者如果我尝试
的其他语法 folder=`basename "$directory"`
两者都会导致相同的错误:
basename: 非法选项 -- F 用法:基本名称字符串[后缀] 基本名称 [-a] [-s 后缀] 字符串 [...]
除了不使用带前导破折号的文件(这可能很难向普通用户解释),我该怎么办? 谢谢!
在大多数命令中,您可以使用双破折号 --
来表示“参数结束”。
folder=`basename -- "$directory"`
如何完全避免 basename
而只做
folder=$directory:t
顺便说一句,如果你想要等同于 dirname
(即目录部分),它将是 $directory:h
。