小编Gnu*_*iff的帖子

在bash中为外部命令构建可变长度参数行的正确方法

我需要使用“find”命令在我的 Bash 函数中查找几组不同的文件,具体取决于我的脚本输入。

所以,我有这样的事情:

DAYS=30
case $1 in
A1) ARGLINE="-name 'FOO*.xml' -or -name 'BAR*.xml' -or -name 'BTT*.txt'"
    ;;
A2) ARGLINE="-name 'PO*xml' -or -name 'PR*xml'"
    ;;
...
esac
find . -maxdepth 1 -type f -mtime +${DAYS} `${ARGLINE}`
Run Code Online (Sandbox Code Playgroud)

这有效。

但是,只要我想使用变量搜索返回的天数,就像这样:

DAYS=30
case $1 in
A1) ARGLINE="-name 'FOO*.xml' -or -name 'BAR*.xml' -or -name 'BTT*.txt'"
    ;;
A2) ARGLINE="-name 'PO*xml' -or -name 'PR*xml'"
    ;;
...
esac
if [[ $# -gt 1 ]]; then
    DAYS=$2
fi
find . -maxdepth 1 -type f -mtime +${DAYS} `${ARGLINE}`
Run Code Online (Sandbox Code Playgroud)

当 …

bash find shell-script arguments

1
推荐指数
2
解决办法
250
查看次数

标签 统计

arguments ×1

bash ×1

find ×1

shell-script ×1