如何获得函数使用的查找结果?我总是得到空白的结果。
#!/bin/bash
#functions
function codec_scan () {
echo "paremter 1 is this: $1" # >> $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...'
。后面的参数是脚本的参数,而不是函数的参数。每个函数都有自己的$1 $2 ...
位置参数,它们与脚本是分开的。他们对bash -c
的争论从$0
开始,而不是从$1
开始,参见man bash
,这就像bash -c 'script..' <$0> <$1> <$2> ...
您想要:
find .... -exec bash -c 'codec_scan "$@"' _ {} ;
不要在bash中使用function
。只有codec_scan() {
。看见https://wiki.bash-hackers.org/scripting/obsolete
您可能对-iname
感兴趣。