将我的当前目录与unix中预定义的目录进行比较

将我的当前目录与unix中预定义的目录进行比较,unix,command-line,path,Unix,Command Line,Path,我正在尝试编写一个小脚本,为我当前使用的应用程序安装扩展。然而,当我ssh进入我的框中时,我不想总是想知道我是否在正确的目录中安装扩展。相反,我只想运行一个命令,并在该命令中检查当前工作目录,然后将该目录的结尾与我预定义的目录进行比较 例如,我在extensions文件夹中安装了我的扩展。假设我运行pwd,它会吐出/home/site.com/not\u extensions\u目录/。然后脚本会看到当前目录不是extensions目录,因此我可以终止安装并打印警告 更好的解决方案是让脚本检测到

我正在尝试编写一个小脚本,为我当前使用的应用程序安装扩展。然而,当我
ssh
进入我的框中时,我不想总是想知道我是否在正确的目录中安装扩展。相反,我只想运行一个命令,并在该命令中检查当前工作目录,然后将该目录的结尾与我预定义的目录进行比较

例如,我在
extensions
文件夹中安装了我的扩展。假设我运行
pwd
,它会吐出
/home/site.com/not\u extensions\u目录/
。然后脚本会看到当前目录不是
extensions
目录,因此我可以终止安装并打印警告

更好的解决方案是让脚本检测到我不在正确的目录中,然后向用户提示

是否切换到“扩展”目录继续安装(是/否)?


在unix设备上执行此操作的正确语法是什么(任何一种解决方案)?

将其放在脚本的顶部。将
/path/to/extensions
替换为
extensions
文件夹

CURRENT_DIR="$( cd "$( dirname "$0" )" && pwd )"

if [ $CURRENT_DIR != /path/to/extensions ]; then
    echo "This script needs to be run from /path/to/extensions"
    exit 1
fi 

@shellter-登录时不会发生这种情况。如果我正在设置一个新的站点实例,我会运行它。我没有完全系统管理这个盒子,因为它不属于我的联盟ATM(未来的概率=X)。此外,如果我将来安装新的扩展,我可能希望扩展此功能。这是一个良好的开端…我正在尝试更动态的b/c我有多个站点,它们具有指向
extensions
文件夹的不同文件夹路径。但是,当我在
$CURRENT_DIR
上执行
echo
dirname:invalid option--b时,会收到此警告。有关详细信息,请尝试dirname--help。
您已经在bash登录shell下运行了shell片段
$0
扩展为“-bash”(由sshd设置),dirname将其理解为它不支持的一组集群选项,以“-b”开头。