Exec 不输出结果到函数

Exec not outputting result to function

如何获取函数要使用的查找结果?我总是得到空白结果。

#!/bin/bash

#functions
function codec_scan () {

 echo "paremter 1 is this: " # >> $fulllog

}

#exporting
export -f codec_scan

#Main Code
find . -type f \( -name "*.avi" -o -name "*.AVI" -o -name "*.m4v" -o -name "*.mkv" -o -name "*.mp4" -o -name "*.MP4" \) -exec bash -c codec_scan \"\{}\" \;

\"\{}\" 文字 个字符 ",里面有 {}。这是鞋底 {}。之前没有,之后也没有。除非你想添加文字"个字符。

bash -c 'script...'。后面的参数是 脚本 的参数,而不是函数的参数。每个函数都有自己的 ... 个位置参数,它们与脚本是分开的。他们对 bash -c 的论证是从 [=19=] 开始的,而不是从 </code> 开始的,参见 <code>man bash,就像 bash -c 'script..' <[=22=]> <> <> ...

你想要:

find ....  -exec bash -c 'codec_scan "$@"' _ {} \;

不要在 bash 中使用 function。只是 codec_scan() {。参见 https://wiki.bash-hackers.org/scripting/obsolete

您可能对-iname感兴趣。