You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Solaris系统中通过Unix find命令调用本地BASH脚本函数可行吗?

脚本可行性分析与修正方案

你的这段bash脚本不可行,原因是:find命令的-exec选项会在独立的子shell中执行指定命令,而你在当前shell里定义的processFile函数,子shell无法访问,运行时会抛出processFile: command not found的错误。

两种可行的修正方式:

方式一:在子shell中直接定义并调用函数

把函数定义和调用逻辑放到bash -c的参数里,让子shell能直接访问:

#!/bin/bash

find . -type f -amin 88 -exec bash -c '
processFile() {
    echo "$1"
}
processFile "$0"
' {} \;

方式二:导出函数到环境变量

用export -f把函数导出到环境,让子shell继承这个函数(这是bash的特有功能):

#!/bin/bash

processFile() {
    echo "$1"
}
# 导出函数到环境
export -f processFile

find . -type f -amin 88 -exec bash -c 'processFile "$0"' {} \;

另外注意:原脚本里的echo $1建议改成echo "$1",如果文件名包含空格、换行或特殊字符,不加双引号会导致参数被错误拆分,输出不符合预期。

内容的提问来源于stack exchange,提问作者Ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 17:14:56