当前位置: 首页 > 面试题库 >

在Linux中找到-exec一个shell函数?

郎飞航
2023-03-14
问题内容

有没有办法find执行我在Shell中定义的功能?例如:

dosomething () {
  echo "doing something with $1"
}
find . -exec dosomething {} \;

结果是:

find: dosomething: No such file or directory

有没有办法让find-execdosomething


问题答案:

由于只有外壳程序知道如何运行外壳程序功能,因此您必须运行外壳程序才能运行功能。您还需要用标记要导出的函数export -f,否则子shell将不会继承它们:

export -f dosomething
find . -exec bash -c 'dosomething "$0"' {} \;


 类似资料:
  • 问题内容: 我在弄清楚如何使用os / exec包运行多个命令时遇到了麻烦。我已经摸索了网络和stackoverflow,还没有找到任何适合我的案例。这是我的资料来源: 我想要命令,就像从终端一样。 因此,我需要依次运行每个命令,并等待最后一个命令完成后再继续。在当前版本的代码中,当前假设是因为执行cd path并在新的shell中执行了./configure,而不是与上一个命令位于同一目录中。有

  • 问题内容: 这不起作用。可以在查找中完成吗?还是我需要xargs? 问题答案: 将管道符号解释为运行多个进程并将一个进程的输出通过管道传递到另一进程的输入的指令是外壳程序的职责(/ bin / sh或等效命令)。 在您的示例中,您可以选择使用顶级外壳执行管道,如下所示: 就效率而言,此结果花费了find的一次调用,zcat的多次调用和agrep的一次调用。 这将导致仅产生一个agrep进程,该进程

  • 本文向大家介绍Linux Shell函数返回值,包括了Linux Shell函数返回值的使用技巧和注意事项,需要的朋友参考一下 Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。 示例: 结果: mytest 1 arg1 = 1 1 mytest 0 arg1 = 0 0

  • 问题内容: 我有一个PHP脚本,它需要调用shell脚本,但根本不关心输出。Shell脚本会进行许多SOAP调用,并且完成起来很慢,因此我不想在等待回复时放慢PHP请求。实际上,PHP请求应该能够退出而不终止shell进程。 我已经研究过的各种,,,等功能,但他们都不似乎提供正是我想要的。(或者,如果这样做,我不清楚如何做到。)有什么建议吗? 问题答案: 如果它“不关心输出”,是否不能使用后台进程

  • 本文向大家介绍创建一个MySQL函数并在列中找到平均值,包括了创建一个MySQL函数并在列中找到平均值的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是创建返回平均值的函数的查询- 现在您可以使用select语句调用该函数- 这将产生以下输出-

  • 问题内容: 在大量文件中,哪一个效率更高,应该使用? 要么 (假设文件名中没有有趣的字符) 问题答案: 速度差异不明显。 但是您必须确保: 您的脚本不会假定文件名中没有文件空间,制表符等。第一个版本是安全的,第二个则不是。 您的脚本不会将以“ ” 开头的文件作为选项。 因此,您的代码应如下所示: 要么 第一个版本更短并且更容易编写,因为您可以忽略1,但是第二个版本更可移植且更安全,因为“ ”是GN