我想打印以下模式的最后一个单词,例如 /rahul/file.txt --> file.txt 必须打印,如果模式是 /rahul/sample/file1.txt --> file1.txt 必须打印。
最简单的方法是使用基本名称,但这不适用于我的詹金斯。还有其他方法可以做到这一点吗
答案1
与csh
,tcsh
或zsh
, 如果$var
包含/path/to/file
, 则$var:t
扩展为尾巴的$var
, 所以file
.
你会得到类似的东西vim
。
那些:h
(头),:t
(尾),:r
(根),:e
(扩展)修饰语也可用于历史扩展(csh、tcsh、bash、zsh)和zsh
.
/
请注意,对于、//
或等值的实现之间的行为存在一些差异/some/dir/
。
对于其他 shell,您始终可以使用以下basename
命令:
basename -- "$var"
将输出尾巴的$var
也是如此。
您可以将其存储在另一个变量中:
other_var=$(basename -- "$var")
$var
(但请注意,如果以换行符结尾,它将无法正常工作)。
使用 POSIX shell,${var##*/}
将扩展到 的内容,$var
并删除最右边的所有内容/
。
无论如何,你的詹金斯问题可能不相关,并且可能取决于您如何执行解释您要运行的命令的 shell。