我正在编写一个脚本来帮助我组织课程。
我希望能够运行
等命令class econ -h
转到我的econ类的目录,然后转到homework的子目录(已经在每个类目录中创建)。我有完美的工作,但我想扩展我的程序,只允许:
class -h
来自/ home / USER / School / Semester-Fall / Econ /,我需要做些什么才能检查该路径,并将其与默认值相提并论:/ home / USER / School / Semester -fall /
如果我不够清楚或者您需要更多信息,请告诉我。谢谢。
答案 0 :(得分:0)
"需要检查我当前的目录是否在某个子目录中"
为方便起见,我们定义"某些子目录"作为default
:
default="/home/USER/School/Semester-Fall/"
现在,要检查当前目录是否在$default
定义的目录下,请使用:
[ "${PWD#$default}" != "$PWD" ] && echo "Yes, we are under default"
或:
if [ "${PWD#$default}" != "$PWD" ]
then
echo "Yes, we are under default"
else
echo "No, we are not"
fi
在bash下,$PWD
是当前的工作目录。
${PWD#$default}
是前缀删除的示例。如果当前工作目录的值为$default
,则会删除$default
。
如果"${PWD#$default}" != "$PWD"
为真,那么我们知道$PWD
以$default
开头,因此当前工作目录位于$default
。
为了使其可靠运行,$default
应以/
结尾。
$ s=/home/USER/School/Semester-Fall/Econ/
$ echo "${s#/ho}"
me/USER/School/Semester-Fall/Econ/
$ echo "${s#/home/USER/School/Semester-Fall/}"
Econ/
$ echo "${s#/home/OtherUser/School/Semester-Fall/}"
/home/USER/School/Semester-Fall/Econ/