Linux Bash 脚本 - 将参数中的小写路径与实际文件系统路径匹配

标签 linux bash sh case-sensitive

我有一个 Linux 脚本,它获取传递给它的参数,该参数源自 MSDOS(实际上是运行 MS DOS 6.22 的 DOSEMU)。传递的参数不区分大小写(因为 DOS 不区分大小写),但 Linux 当然会区分大小写。

我试图从以下传递的参数中获取

/media/zigg4/vol1/database/scan/stalbans/docprint/wp23452.wpd

/media/zigg4/vol1/Database/SCAN/STALBANS/DOCPRINT/Wp23452.WPD

我不知道实际的区分大小写的路径,因此我需要以某种方式从传递给脚本的参数中确定它。我完全不知道从哪里开始,因此非常感谢任何帮助。

为了提供额外的信息和清晰度而进行了编辑

更新

感谢 @anubhava 的回答,我使用了以下内容:-

#!/bin/bash

copies=1
if [ ! -z "$2" ]; then
  copies=$2
fi

find / -readable -ipath $1 2>&1 | grep -v "Permission denied" | while IFS= read -r FILE; do
    lpr -o Collate=True -#$copies -sP $FILE
done

效果很好:-)

最佳答案

您可以使用find-ipath选项来忽略大小写路径匹配:

# assuming $arg contains path argument supplied
find . -ipath "*$arg*"

关于Linux Bash 脚本 - 将参数中的小写路径与实际文件系统路径匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38461679/

相关文章:

linux - Bash/Shell 脚本 - 如何操作文本文件中的值

linux - 从 Micro SD 启动后与 Beaglebone Black 的终端连接

linux -/proc/mounts 和/etc/mtab 的排序

python - Bash 解析和连接执行 python 的参数

linux - 运行 "-bash"后命令 "ps -aux |grep bash"是什么

git - sh.exe 阻止 Windows cmd move 命令工作

Bash 脚本从文本生成 csv 文件

php - popen 只返回部分输出

linux - Python 脚本不发送 linux 命令。我使用 Paramiko 进行远程 SSH 连接

linux - 命令替换如何工作