如何使OS X的bash扩展$ PWD区分大小写?


2

我在MBP 2011上运行OS X 10.8。我使用一些bash脚本来执行诸如远程服务器备份之类的任务。其中一个脚本包含以下代码段:

#!/bin/bash
if [ "$PWD" != /Users/myuser/Documents/Backup ]
then
    echo "Wrong path: $PWD"
    exit 0
fi

当我在/Users/myuser/Documents/Backup(注意大写B)中执行此脚本时,得到以下响应:

Wrong path: /Users/myuser/Documents/backup

由于某种原因,$PWDgets扩展为小写名称。我该如何缓解呢?我的文件系统是不区分大小写:既cd Backupcd backup工作。

Answers:


3

实际上,您有两个选择:$PWD在与其他字符串进行比较之前转换为一致的大小写(也应该具有一致的大小写)。或删除区分大小写的比较。

比较之前将其转换为小写:

#!/bin/bash
if [ `echo $PWD | tr [:upper:] [:lower:]` != /users/myuser/documents/backup ]
then
    echo "Wrong path: $PWD"
    exit 0
fi

删除区分大小写的比较:

#!/bin/bash
shopt -s nocasematch
if [[ "$PWD" != /Users/myuser/Documents/Backup ]]
then
    echo "Wrong path: $PWD"
    exit 0
fi

我使用了第二个选项。但是,我需要使用[[]]语法才能正常工作。
阿恩(Arne)

我修复了语法。接得好。
伊恩·C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.