linux - 在一行代码中使用 basename 替换扩展名

标签 linux

在 bash Linux 中

v1=$(basename $0)           gives filename.ext

v1=${v1%.*}.log             replaces ext  filename.log

如何合并成一行?当我在下面尝试时,我得到了错误的替换错误

v1={($(basename $0))%.*}.log

谢谢

最佳答案

你只能对参数使用参数扩展,所以一般情况下你不能这样做。

但是,在这种特定情况下,您可以重新排序操作,因为无论您是先使用基本名称还是先剥离扩展名都没有关系:

v1=$(basename "${0%.*}.log")

关于linux - 在一行代码中使用 basename 替换扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37285814/

相关文章:

linux - 如何使 ImageMagic 识别接受来自管道的输入?

linux - 选择非阻塞读取

python - 重定向到 Python 程序到终端和文件

linux - 如何强制内核重新读取/重新初始化 PCI 设备 ID?

linux - 组合查找命令条件

linux - 确定 EC2 分区指向的卷

linux - gnuplot 自动排序时间

linux - 从给定日期获取上周的日期

php - 在 apache 中限制从 Internet 访问

linux - 从命令行发现 linux 磁盘配置