bash:如何正确地将 basename 放入字符串中?

标签 bash

这是我的片段:

__VERSION="0.0.1"
__COMMAND="${basename}"
__USAGE="$__COMMAND -abc args"
if [ $# == 0 ] ; then
    echo "Usage: ${__USAGE}"
    exit 1;
fi

每次运行它我都会得到:

Usage: -abc args

当我期望输出为:

Usage: filename -abc args

我试过:

__COMMAND=基名

__COMMAND=基本名称 $0

__COMMAND="$basename"

__COMMAND="${basename}"

__COMMAND="${basename $0}"

虽然在某些情况下错误有所不同,但都没有奏效。

这样做的正确方法是什么?

最佳答案

正确的是关于唯一一个你没有试过的:

__COMMAND=$(basename $0)

但是你根本不需要basename。你可以只使用 bash 参数扩展:

__COMMAND=${0##*/}

关于bash:如何正确地将 basename 放入字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235612/

相关文章:

bash - Github 权限被拒绝 : ssh add agent has no identities

linux - 用 sed 给 grub 添加一个内核参数

linux - 带有 smartctl 的 Bash 脚本不起作用

bash - 当与 let 结构一起使用时,间距如何影响通配符运算符?

bash - 为什么不在导出命令的赋值部分扩展通配符?

Bash 脚本 - 在 case 结构或 if else 语句中不执行读取命令

arrays - 将数组的元素递增 1(1 到 1000)

linux - 如何使用不同的变量循环 shell 脚本,用变量存储脚本的全部内容,然后运行另一个函数

bash - 如何默认到其他目录而不是主目录

linux - 将 stdout 传递给同一个命令两次