我希望我能清楚地表达我的问题。具体来说,就是这样:
我想使用test或者case case语句来确定变量$ DIR中包含的目录名是否是我当前的目录(。)或它的父目录(..)
当然我可以回显我当前的目录(echo $ PWD),但回显$ PWD父母的最简单方法是什么?
感谢。
答案 0 :(得分:6)
您可以使用${PWD%/*}
:
$ echo $PWD
/home/me/test/t
$ echo ${PWD%/*}
/home/me/test
由于表达式${PWD%/*}
正在从/*
后面剥离$PWD
的最短匹配:
来自Bash Reference Manual → 3.5.3 Shell Parameter Expansion:
<强> $ {参数%字} 强>
这个词被扩展为产生一个模式,就像文件名扩展一样。如果模式匹配参数的扩展值的尾部,则扩展的结果是删除了最短匹配模式的参数的值。如果参数是'@'或'',则模式删除操作依次应用于每个位置参数,并且扩展是结果列表。如果参数是使用'@'或''下标的数组变量,则模式删除操作依次应用于数组的每个成员,并且扩展是结果列表。
答案 1 :(得分:3)
dirname $PWD
或
dirname $(pwd)
答案 2 :(得分:0)
parent=$(realpath "$PWD/..")