如何打印当前目录的父目录的名称

Ros*_*yer 1 unix shell ksh

我希望我能清楚地表达我的问题.具体来说,就是这样:

我想使用test或者case case语句来确定变量$ DIR中包含的目录名是否是我当前的目录(.)或它的父目录(..)

当然我可以回显我当前的目录(echo $ PWD),但回显$ PWD父母的最简单方法是什么?

谢谢.

fed*_*qui 6

你可以使用${PWD%/*}:

$ echo $PWD
/home/me/test/t
$ echo ${PWD%/*}
/home/me/test
Run Code Online (Sandbox Code Playgroud)

由于表达式${PWD%/*}正在剥离/*后面的最短匹配$PWD:

Bash参考手册→3.5.3 Shell参数扩展:

$ {参数%字}

这个词被扩展为产生一个模式,就像文件名扩展一样.如果模式匹配参数的扩展值的尾部,则扩展的结果是删除了最短匹配模式的参数的值.如果参数为'@'或' ',则模式删除操作依次应用于每个位置参数,并且扩展是结果列表.如果参数是使用'@'或' ' 下标的数组变量,则模式删除操作依次应用于数组的每个成员,并且扩展是结果列表.