0

这可能标题不好,因为我不完全确定该过程被称为什么。基本上我只想获取符号链接路径的最后一部分,并且我正在尝试使用与 PWD 相同的方法。

例如:如果我这样做

PWD

它打印

/opt/ct/mydir

如果我做

echo ${PWD##*/}

它只打印最后一部分

mydir

所以使用那个设计我可以做到

readlink mysymlink

这使

/opt/ct/somedir

我能做到

TMP=$(readlink mysymlink)
echo ${TMP##*/}

它会打印

somedir

那么现在我怎样才能将最后一部分组合成一行

 TMP=$(readlink mysymlink && echo ${TMP##*/})

???

我展示的示例为我提供了 2 个串联结果。一个包含完整路径,一个包含我想要的部分。我只想要最后一个目录。

我也试过

TMP=${ $(readlink mysymlink)##*/}

无济于事

4

1 回答 1

1

变量替换后缀只能用于变量,不能用于命令替换。您要么必须设置变量并在单独的语句中修改它,就像您第一次尝试一样,要么使用额外的命令替换:

TMP=$(basename $(readlink))
于 2014-12-10T21:04:21.780 回答