bash:如何正确地将basename转换为字符串?

时间:2013-10-07 22:06:14

标签: bash

这是我的代码段:

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

每次我跑步它都会得到:

  

用法:-abc args

当我期待输出为:

  

用法:filename -abc args

我试过了:

__ COMMAND =基名

__ COMMAND = basename $ 0

__ COMMAND = “$基名”

__ COMMAND = “$ {基名}”

__ COMMAND =“$ {basename $ 0}”

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

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

1 个答案:

答案 0 :(得分:8)

正确的是你唯一没有尝试过的人:

__COMMAND=$(basename $0)

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

__COMMAND=${0##*/}