我做了一个简单的shell脚本来处理SoX的MP3文件。PPSS shell脚本
for f in ./*.mp3; do sox "$f" "${f%%.mp3}S.mp3" silence 1 0.02 1% -1 0.02 1%; done
的语法应该是这样的:
sox in.wav out.wav silence 1 0.1 1% -1 0.1 1%
它会从我有一个文件夹中的文件删除沉默,并创建一个“X”在最后一个新的文件(区分从原来的)。我将脚本保存在我的/ bin文件夹中,并且工作正常。
但是,现在我想与PPSS一起使用它,以便并行运行8个实例。虽然我似乎无法得到它的工作,但在日志文件中,我收到的错误是日志中的这个错误:
/usr/local/bin/ppss:line 2283:soxy.sh/Users/marw/Downloads/testfolder // ppss_dir/job_log/_Users_marw_Downloads_testfolder__10_audio_mp3:没有这样的文件或目录
状态:FAILURE 总处理时间(小时:分钟:秒):00:00:01
的PPSS语法应该是这样的:
|P|P|S|S| Distributed Parallel Processing Shell Script 2.97
usage: /usr/local/bin/ppss [[ -d <sourcedir> | -f <sourcefile> ]] [[ -c '<command> "$ITEM"' ]]
[[ -C <configfile> ]] [[ -j ]] [[ -l <logfile> ]] [[ -p <# jobs> ]]
[[ -q ]] [[ -D <delay> ]] [[ -h ]] [[ --help ]] [[ -r ]] [[ --daemon ]]
Examples:
/usr/local/bin/ppss -d /dir/with/some/files -c 'gzip '
/usr/local/bin/ppss -d /dir/with/some/files -c 'cp "$ITEM" /tmp' -p 2
/usr/local/bin/ppss -f <file> -c 'wget -q -P /destination/directory "$ITEM"' -p 10
我是新来的shell scr如果这是一个愚蠢的问题,请原谅我。我的操作系统是MacOS 10.11.5。
这就是我想用PPSS:
ppss -d /Users/marw/Downloads/testfolder -c 'soxy.sh'
也许我必须以不同的方式写我原来的剧本?虽然没有PPSS,但它工作正常。
编辑:
我有一个调试日志的位置:http://pastebin.com/wak47rf8
我在重新阅读您的帖子后删除了我的答案。看起来'ppss'正在将你的脚本“soxy.sh”传递给你给它的目录路径,尽管我不熟悉“ppss”以及它的工作原理。在再次发帖之前,我会仔细考虑这一点。 – bluerojo
好酷:)谢谢。顺便说一句,它不一定是PPSS,但这是我发现在Stackoverflow上搜索。我只是想并行运行脚本,所以我可以使用8个内核而不是1个。 – Marw
我找到了答案,我必须在“soxy.sh”之后留下尾部空格,就像这个'soxy.sh'。试过这种方式,它的工作。 – Marw