bash:获取目录参数

标签 bash

我正在编写一个使用调用语法的 bash 脚本

脚本[选项] [目录]

为了检索选项集并解析它们,我使用了 getopts。但是我怎样才能得到 dir 参数呢?一般来说,如果我检索最后一个参数为 ${@:${#@}},它不一定是目录,它仍然可以是一个选项或它的值。

我用于 getopts 的代码:

DIR="."
RECURSIVE=
FILTER=
while getopts “hnf:” OPTION
do
case $OPTION in
    h)
        usage
        exit 1
        ;;
    n)
        RECURSIVE="-maxdepth 1"
        ;;
    f)
        FILTER=$OPTARG
        ;;
    \?)
         exit 1
         ;;
    :)
         exit 1
         ;;
esac
done

你能帮忙吗?

最佳答案

OPTIND 存储处理参数的位置。在循环之后做一个:

shift $((OPTIND-1))

现在目录在 $@ 中,第一个目录在 $1 中。

关于bash:获取目录参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9859784/

相关文章:

linux - 如何在多台 CGE 机器上同时运行 shell 脚本?

arrays - 使用 mapfile 将输出保存到关联数组

performance - 为什么要使用内置命令而不是外部程序(在 bash 脚本中)?

bash - 如何在 bash 中转义 sqlite3 查询参数?

linux - 如果 [ $? -ne 0 ];不工作?

linux - 在 GNU/Linux 上显示 CGI 错误的日志文件

bash - 等待进程完成,或用户输入

bash - 为什么 bash 参数扩展会导致 rsync 命令以不同方式运行?

linux - 将三个数据文件连接成具有不同且相同时间步长的矩阵

linux - 如何避免每个循环中的不可打印字符(shell 脚本)